Differenze tra le versioni di "Scomporre una stringa e caricare ogni parola in una variabile array"
Riga 7: | Riga 7: | ||
L'intenzione è quello di scomporre tale stringa in modo da distinguere ed inserire i vari gruppi di caratteri alfanumerici comprensibli (ossia le normali ''parole'') e diversi dagli spazi, che formano la stringa, in una variabile array. | L'intenzione è quello di scomporre tale stringa in modo da distinguere ed inserire i vari gruppi di caratteri alfanumerici comprensibli (ossia le normali ''parole'') e diversi dagli spazi, che formano la stringa, in una variabile array. | ||
− | Poniamo il caso che quella stringa sia caricata tutta nella variabile stringa "wiki". Per raggiungere il nostro obiettivo iniziale potremo, quindi, adottare il seguente procedimento: | + | |
+ | ==Se la stringa è posta in una variabile== | ||
+ | Poniamo il caso che quella stringa sia caricata tutta nella variabile stringa "wiki". | ||
+ | <BR>Per raggiungere il nostro obiettivo iniziale potremo, quindi, adottare il seguente procedimento: | ||
Private wiki As String = "Questo è il Wiki di Gambas-it\n" & | Private wiki As String = "Questo è il Wiki di Gambas-it\n" & | ||
Riga 37: | Riga 40: | ||
Next | Next | ||
+ | '''End''' | ||
+ | |||
+ | |||
+ | |||
+ | ==Se la stringa viene letta da un file di testo== | ||
+ | In tal caso possiamo adottare due modalità: | ||
+ | |||
+ | ===Lettura con il metodo ''File.Load''=== | ||
+ | Il file di testo viene letto con il metodo ''.Load'' della classe File; ed i dati risultanti saranno posti in una variabile di tipo stringa: | ||
+ | '''Public''' Sub Button1_Click() | ||
+ | |||
+ | Dim a As String | ||
+ | |||
+ | a = File.Load("percorso_del_file_di_testo") | ||
+ | |||
+ | <FONT color=#006400>' ''Qui, poi, le funzioni "Split" e "Replace"''</font> | ||
+ | |||
+ | '''End''' | ||
+ | Si procederà poi a distinguere le varie parole della stringa, caricata nella variabile, mediante le due funzioni "''Split''" e "''Replace''" sostanzialmente con le medesime modalità viste prima. | ||
+ | |||
+ | |||
+ | ===Lettura con ''Open....For Read/Input''=== | ||
+ | Con quest'altra modalità si leggerà il file di testo come un file binario mediante la fuzione ''Input''. Come è noto, "Input" legge le stringhe in un File di testo fino all'interruzione dello spazio o al carattere di "nuova linea". Ciò permetterà di individuare ogni parola del testo, delimitata da uno spazio, e di caricarla successivamente in un nuovo elemento di un'apposita variabile-array: | ||
+ | '''Public''' Sub Button1_Click() | ||
+ | |||
+ | Dim f As File | ||
+ | Dim s$ As String | ||
+ | Dim ss$ As New String[] | ||
+ | Dim j As Byte | ||
+ | |||
+ | |||
+ | f = Open "percorso_del_file_di_testo" For Read <FONT color=#006400>' ''...oppure "Input"''</font> | ||
+ | |||
+ | |||
+ | While Not Eof(fl) | ||
+ | Input #fl, s$ | ||
+ | <FONT color=#006400>' ''Ogni parola del testo, delimitata da uno spazio, viene individuata'' | ||
+ | ' ''e caricata in un nuovo elemento della variabile-array ss$:''</font> | ||
+ | ss$.Add(s$) | ||
+ | Wend | ||
+ | |||
+ | <FONT color=#006400>' ''Mostra in console ogni stringa (parola) contenuta in ciascun elemento della variabile-array ss$:''</font> | ||
+ | For j = 0 To b.Max | ||
+ | Print ss$[j] | ||
+ | Next | ||
+ | |||
'''End''' | '''End''' |
Versione delle 09:56, 2 set 2012
Il caso in questione è quello in cui si ha una stringa, nella quale sono presenti anche dei comandi: carrello a capo + nuova riga, così da ottenere visivamente più righe, come nell'esempio sottostante:
Questo è il Wiki di Gambas-it cioè è una collezione di documenti ipertestuali che può essere modificata dai suoi utilizzatori
L'intenzione è quello di scomporre tale stringa in modo da distinguere ed inserire i vari gruppi di caratteri alfanumerici comprensibli (ossia le normali parole) e diversi dagli spazi, che formano la stringa, in una variabile array.
Indice
Se la stringa è posta in una variabile
Poniamo il caso che quella stringa sia caricata tutta nella variabile stringa "wiki".
Per raggiungere il nostro obiettivo iniziale potremo, quindi, adottare il seguente procedimento:
Private wiki As String = "Questo è il Wiki di Gambas-it\n" & "cioè è una collezione di documenti ipertestuali\n" & "che può essere modificata dai suoi utilizzatori" Public Sub Button1_Click() Dim a As String Dim aa As String[] Dim j As Byte ' Eliminiamo innanzitutto dalla stringa tutti i comandi: ' "carrello a capo + nuova riga", trasformandoli in semplici spazi. ' La stringa si trasformerà visivamente in un'unica riga lineare. Questo per preparare ' la stringa alla successiva funzione ed affinché essa resti unica: a = Replace(wiki, "\n", " ") ' Si scompone, quindi, la stringa così ottenuta, ponendo come punto ' di divisione di ogni elemento dall'altro gli spazi. Si pone a "True" l'ultimo parametro ' della funzione "Split", in modo tale da assicurarsi completamente la non considerazione di qualsisi spazio. ' Nella variabile array "aa" avremo, quindi, una parola alfanumerica per ciascun elemento: aa = Split(a, " ", "", True) ' Andiamo a vedere il contenuto di ciascun elemento dell'array: for j = 0 to aa.Max Print aa[j] Next End
Se la stringa viene letta da un file di testo
In tal caso possiamo adottare due modalità:
Lettura con il metodo File.Load
Il file di testo viene letto con il metodo .Load della classe File; ed i dati risultanti saranno posti in una variabile di tipo stringa:
Public Sub Button1_Click() Dim a As String a = File.Load("percorso_del_file_di_testo") ' Qui, poi, le funzioni "Split" e "Replace" End
Si procederà poi a distinguere le varie parole della stringa, caricata nella variabile, mediante le due funzioni "Split" e "Replace" sostanzialmente con le medesime modalità viste prima.
Lettura con Open....For Read/Input
Con quest'altra modalità si leggerà il file di testo come un file binario mediante la fuzione Input. Come è noto, "Input" legge le stringhe in un File di testo fino all'interruzione dello spazio o al carattere di "nuova linea". Ciò permetterà di individuare ogni parola del testo, delimitata da uno spazio, e di caricarla successivamente in un nuovo elemento di un'apposita variabile-array:
Public Sub Button1_Click() Dim f As File Dim s$ As String Dim ss$ As New String[] Dim j As Byte f = Open "percorso_del_file_di_testo" For Read ' ...oppure "Input" While Not Eof(fl) Input #fl, s$ ' Ogni parola del testo, delimitata da uno spazio, viene individuata ' e caricata in un nuovo elemento della variabile-array ss$: ss$.Add(s$) Wend ' Mostra in console ogni stringa (parola) contenuta in ciascun elemento della variabile-array ss$: For j = 0 To b.Max Print ss$[j] Next End