Conta parole di un testo e consiglio per una maschera

di
Anonimizzato13345
il
4 risposte

Conta parole di un testo e consiglio per una maschera

Buongiorno a tutti,
vi pongo i miei dubbi.

1) ho una tabella APP che contiene il campo DESCRIZIONE, in cui è inserito un testo che varia dalle 30 alle 300 parole... esiste un modo per contare quante parole ci sono in ogni descrizione? ho visto in rete che esiste un comando per contare i caratteri ma quello non mi serve.

2) la DESCRIZIONE della tabella APP è collegata in una query con una tabella DIZIONARIO. La query in sostanza mi dice quali parole sono presenti in ogni DESCRIZIONE. E fin qui tutto bene. Il problema è che ho necessità di vedere tutte le parole di una descrizione nella stessa schermata ma le maschere che riesco a creare io mi fanno vedere una parola alla volta! Ho pensato di creare un report ma non è la soluzione giusta perchè mi fa vedere le parole di TUTTE le descrizioni insieme e non mi serve.
Qualche idea? Mi andrebbe bene anche qualcosa che mi concatenasse tutte le parole nella stessa casella di testo ma non so se è fattibile.

GRAZIE|

4 Risposte

  • Re: Conta parole di un testo e consiglio per una maschera

    valebolck ha scritto:


    Buongiorno a tutti,
    vi pongo i miei dubbi.

    1) ho una tabella APP che contiene il campo DESCRIZIONE, in cui è inserito un testo che varia dalle 30 alle 300 parole... esiste un modo per contare quante parole ci sono in ogni descrizione? ho visto in rete che esiste un comando per contare i caratteri ma quello non mi serve.
    Perchè dici di no...?
    Puoi spiegare il tuo concetto di parola e come distingui in un testo "Banco di prova" di quante parole è formato...?
    Una prima e semplicistica analisi potrebbe indicare che le Parole in un testo, troncati spazzi iniziali e finali LTRIM e RTRIM) sono date dal Numero degli Spazzi + 1, ad esempio...!
    Quindi contando quanti Spazzi ci sono potrebbe darti una prima idea.
    Come si contano quanti spazzi ci sono...?
    Spaccando il Testo in un'Array con Parametro di Separazione dato dal Carattere da Contare, lo Spazio nel tuo caso, quindi si legge l'indice dell'array.
    La funzione da usare è SPLIT per scomporre e UBOUND(...) per contare, chiaramente accmpagnati dalla GUIDA per le istruzioni dell'uso.

    Se poi hai algoritmi più complessi e precisi serve applicare quelli...

    valebolck ha scritto:


    2) la DESCRIZIONE della tabella APP è collegata in una query con una tabella DIZIONARIO. La query in sostanza mi dice quali parole sono presenti in ogni DESCRIZIONE. E fin qui tutto bene. Il problema è che ho necessità di vedere tutte le parole di una descrizione nella stessa schermata ma le maschere che riesco a creare io mi fanno vedere una parola alla volta! Ho pensato di creare un report ma non è la soluzione giusta perchè mi fa vedere le parole di TUTTE le descrizioni insieme e non mi serve.
    Qualche idea? Mi andrebbe bene anche qualcosa che mi concatenasse tutte le parole nella stessa casella di testo ma non so se è fattibile.

    GRAZIE|
    Per questa seconda esigenza devi lavorare di VBA e ricostruire una STRINGA contenente tutte le parole che risultano dalla Query concatenandole e visualizzandole in una TextBox.
    Devi per questo aprire un Recordset basato sulla query risultato e ciclarlo...

    Quanto conosci di VBA renderà più o meno complesso realizzare il tutto...
  • Re: Conta parole di un testo e consiglio per una maschera

    TI ringrazio per la velocissima risposta...
    Alla questione degli spazi ci avevo pensato ma il testo inserito nel campo DESCRIZIONE è copiato direttamente da fonti esterne e spesso ci sono intere righe di spazi e gli spazi in generale sono messi un pò a caso, per i testi con molte parole non ci sono problemi ma in quelli corti potrebbe sballarmi tutti i calcoli! Speravo esistesse qualche funzione ad hoc per quest'operazione, peccato mi arrangio con gli spazi!
    Per la seconda parte devo rivedermi vba perchè l'avevo usato un pò 3 anni fa ma non so quanto mi sia rimasto...provo a vedere se riesco a raccapezzarmici sennò mi faccio risentire sul forum!
    grazie ancora
  • Re: Conta parole di un testo e consiglio per una maschera

    valebolck ha scritto:


    ...
    2) ...
    Qualche idea? Mi andrebbe bene anche qualcosa che mi concatenasse tutte le parole nella stessa casella di testo ma non so se è fattibile.
    Qui trovi due esempi per concatenare i valori di un campo testo (o memo)
    https://www.iprogrammatori.it/forum-programmazione/access/concatena-email-t21634.html
    http://forum.masterdrive.it/access-79/funzione-analoga-dsum-lavori-campi-testo-memo-campi-numerici-84011/
  • Re: Conta parole di un testo e consiglio per una maschera

    No, no frena...
    Esiste la possibilità di sostituire i CHAR contigui con un solo CHAR usando la Funzione REPLACE

    In sostanza ipotizza di avere una sequenza di N spazzi, puoi fare in modo che solo il 1° sia rimpiazzato... con un char speciale... di conseguenza poi vai a SPACCHETTARE per quello!

    Esempio
    Facendo il test nella Finestra Immediata ottieni 8, perchè 7 sono gli Spazzi + 1, ma le parole sono 2
    
    ?Ubound(Split("Pippo       Pluto"," "))+1
     8 
    Con quanto ti suggerisco invece ottieni 2:
    
    ?Ubound(Split(REPLACE("Pippo       Pluto"," ","-",,1),"-")) + 1
     2
    Se pou ti vuoi addentrare in RegoularExpression, allora credo tu potrai in quel caso ottimizzare moltissimo il risultato, ma la complicazione è leggermente superiore... diciamo che il Pattern diverrà fondamentale...!

    Ti faccio un esempio per farti capire
    
    Function RegexTest()
          Const sText = "ghgh lojeff   lo errer lrer   loj                     errer"
          Dim regex As Object
          Dim regexMatches As Object
          
          Set regex = CreateObject("vbscript.regexp")
          regex.Pattern = "\S+"
          regex.IgnoreCase = True
          regex.Global = True
          
          Set regexMatches = regex.Execute(sText)
          
          MsgBox regexMatches.Count
     End Function
    Come vedrai otterrai [7] che è il numero giusto, e questo indipendentemente gli spazzi nel testo siano RANDOM.
    Vedi tu...
Devi accedere o registrarti per scrivere nel forum
4 risposte