Differenze tra le versioni di "Scan"
Riga 46: | Riga 46: | ||
'''End''' | '''End''' | ||
+ | |||
+ | |||
+ | |||
+ | La funzione ''Scan()'' risulta molto utile nel caso in cui, avendo una stringa formata da gruppi di valori significativi divisi da specifiche parole identificative di ciascun gruppo di valori, si intenda raccogliere, distinti per ciascun campo del vettore restituito da detta funzione, quei valori significativi. | ||
+ | |||
+ | Mostriamo un esempio, nel quale i gruppi di valori significativi da raccogliere sono: ''1234'', ''5678'', ''ABCD'', ''EFGH'', distinti fra loro e rappresentati dalle parole identificative: ''uno'', ''due'', ''tre'' e ''quattro''. | ||
+ | <BR>Basandoci, dunque su tali parole identificative di ciascun gruppo, raccoglieremo mediante la funzione ''Scan()'' i valori siginificativi rappresentati: | ||
+ | '''Public''' Sub Main() | ||
+ | |||
+ | Dim s As String = "uno1234due5678treABCDquattroEFGH" | ||
+ | Dim ss As String[] | ||
+ | |||
+ | ss = Scan(s, "uno*due*tre*quattro*") | ||
+ | |||
+ | For Each s In ss | ||
+ | Print s | ||
+ | Next | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | La funzione ''Scan()'', insomma, può per certi versi essere equiparata un po' alla funzione ''Split()'', con la differenza che nella funzione ''Scan()'' è possibile utilizzare più valori separatori, purché impostati correttamente nella sequenza dei caratteri e delle parole presenti nella stringa da trattare. |
Versione delle 05:40, 9 mag 2015
Scan restituisce un vettore di tipo Stringa contenente quelle parti della stringa, impostata nel suo primo parametro, identificate e distinte in base ad uno o più caratteri contigui esistenti nella stringa, e comunque collocati fra due metacaratteri * .
I caratteri che servono per identificare il punto di separazione fra una parte e l'altra della stringa, vanno collocati nella funzione Scan() comunque rispettando il loro ordine di posizione nella stringa medesima.
Esempio:
Public Sub Main() Dim s As String = "Questa|è una, %provaK/ di Scan()" Dim ss As String[] ' Ovviamente anche lo spazio è un carattere: ss = Scan(s, "*|* *, %*K/ *") For Each s In ss Print s Next End
In quest'altro esempio i caratteri separatori saranno soltanto i 5 spazi:
Public Sub Main() Dim s As String = "Questa è una prova di Scan()" Dim ss As String[] ' Ovviamente anche lo spazio è un carattere. ' Qui 6 * individuano 5 spazi: ss = Scan(s, "* * * * * *") ' Oppure anche così: ' ss = Scan(s, RTrim(String$(6, "* "))) For Each s In ss Print s Next End
In quest'altro esempio il carattere separatore è il punto presente in un numero in virgola mobile. Si potrà in questo modo estrarre sia la parte intera che la parte decimale essenziale di quel numero:
Public Sub Main() Print Scan(CStr(5 / 3), "*.*")[1] End
La funzione Scan() risulta molto utile nel caso in cui, avendo una stringa formata da gruppi di valori significativi divisi da specifiche parole identificative di ciascun gruppo di valori, si intenda raccogliere, distinti per ciascun campo del vettore restituito da detta funzione, quei valori significativi.
Mostriamo un esempio, nel quale i gruppi di valori significativi da raccogliere sono: 1234, 5678, ABCD, EFGH, distinti fra loro e rappresentati dalle parole identificative: uno, due, tre e quattro.
Basandoci, dunque su tali parole identificative di ciascun gruppo, raccoglieremo mediante la funzione Scan() i valori siginificativi rappresentati:
Public Sub Main() Dim s As String = "uno1234due5678treABCDquattroEFGH" Dim ss As String[] ss = Scan(s, "uno*due*tre*quattro*") For Each s In ss Print s Next End
La funzione Scan(), insomma, può per certi versi essere equiparata un po' alla funzione Split(), con la differenza che nella funzione Scan() è possibile utilizzare più valori separatori, purché impostati correttamente nella sequenza dei caratteri e delle parole presenti nella stringa da trattare.