Differenze tra le versioni di "Cercare una parola in una stringa"
Riga 2: | Riga 2: | ||
− | ===Con '''LIKE''' ed il metacarattere '''*''' | + | ==Con la funzione '''InStr'''== |
+ | Probabilmente questa è la soluzione più breve. Con ''InStr'', se viene trovata la parola, verrà restituito un valore di tipo integer superiore a zero, che rappresenta la posizione del primo carattere della parola cercata (o della prima parola trovata fra due o più identiche a quella cercata) all'interno della stringa : | ||
+ | '''Public''' Sub Button1_Click() | ||
+ | |||
+ | Dim $prova As String = "la tenda rossa era grande come la tenda verde" | ||
+ | |||
+ | If InStr($prova, "tenda") > 0 then | ||
+ | |||
+ | Print "La parola \"tenda\" è presente nella stringa !" | ||
+ | |||
+ | Endif | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | Infatti, se vedessimo il risultato restituito in questo esempio da ''Instr'', avremmo: 4 | ||
+ | |||
+ | |||
+ | |||
+ | ==Con la funzione '''RInStr'''== | ||
+ | In questo caso verrà restituita la posizione del primo carattere dell'<SPAN style="text-decoration:underline">ultima</span> parola trovata fra due o più eventuali, identiche a quella cercata, all'interno della stringa. Se, dunque il valore, restituito da ''RInStr'' è superiore a zero, significa che la parola è presente: | ||
+ | '''Public''' Sub Button1_Click() | ||
+ | |||
+ | Dim $prova As String = "la tenda rossa era grande come la tenda verde" | ||
+ | |||
+ | If RInStr($prova, "tenda") > 0 then | ||
+ | |||
+ | Print "La parola \"tenda\" è presente nella stringa !" | ||
+ | |||
+ | Endif | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | Infatti, se vedessimo il risultato restituito in questo esempio da ''RInStr'', avremmo: 35 | ||
+ | |||
+ | |||
+ | |||
+ | ==Le funzioni ''InStr'' e ''RInStr'' e caratteri particolari== | ||
+ | Per le stringhe in ''utf'' bisogna usare la classe String, altrimenti i caratteri particolari come: è, é, ò, à, ù, etc riporteranno un conteggio pari a 2 e non a 1. In particolare vedere le note nelle pagine:a [[InStr|InStr]] e [[RInStr|RInStr]] . | ||
+ | |||
+ | |||
+ | |||
+ | ==Con '''LIKE''' ed il metacarattere '''*'''== | ||
In questo caso possiamo sapere semplicemente se la parola cercata esiste nella stringa: | In questo caso possiamo sapere semplicemente se la parola cercata esiste nella stringa: | ||
+ | |||
1) | 1) | ||
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
Riga 50: | Riga 92: | ||
'''End''' | '''End''' | ||
− | Più in generale riguardo all'operatore ''Like'' con il metacarattere '''*''' ricordiamo che: | + | Più in generale riguardo all'operatore ''Like'' con il metacarattere <FONT color=#B22222>'''*'''</font> ricordiamo che: |
a* indica qualunque stringa (parola) abbia come <SPAN style="text-decoration:underline">primo</span> carattere "a"; | a* indica qualunque stringa (parola) abbia come <SPAN style="text-decoration:underline">primo</span> carattere "a"; | ||
*b indica qualunque stringa (parola) abbia come <SPAN style="text-decoration:underline">ultimo</span> carattere "b"; | *b indica qualunque stringa (parola) abbia come <SPAN style="text-decoration:underline">ultimo</span> carattere "b"; | ||
− | *c* indica qualunque stringa (parola) abbia <SPAN style="text-decoration:underline">in qualsiasi posizione</span> un carattere "c" | + | *c* indica qualunque stringa (parola) abbia <SPAN style="text-decoration:underline">in qualsiasi posizione</span> un carattere "c". |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Versione delle 08:29, 15 gen 2013
Per cercare una parola in una stringa potranno essere usate diverse soluzioni.
Indice
Con la funzione InStr
Probabilmente questa è la soluzione più breve. Con InStr, se viene trovata la parola, verrà restituito un valore di tipo integer superiore a zero, che rappresenta la posizione del primo carattere della parola cercata (o della prima parola trovata fra due o più identiche a quella cercata) all'interno della stringa :
Public Sub Button1_Click() Dim $prova As String = "la tenda rossa era grande come la tenda verde" If InStr($prova, "tenda") > 0 then Print "La parola \"tenda\" è presente nella stringa !" Endif End
Infatti, se vedessimo il risultato restituito in questo esempio da Instr, avremmo: 4
Con la funzione RInStr
In questo caso verrà restituita la posizione del primo carattere dell'ultima parola trovata fra due o più eventuali, identiche a quella cercata, all'interno della stringa. Se, dunque il valore, restituito da RInStr è superiore a zero, significa che la parola è presente:
Public Sub Button1_Click() Dim $prova As String = "la tenda rossa era grande come la tenda verde" If RInStr($prova, "tenda") > 0 then Print "La parola \"tenda\" è presente nella stringa !" Endif End
Infatti, se vedessimo il risultato restituito in questo esempio da RInStr, avremmo: 35
Le funzioni InStr e RInStr e caratteri particolari
Per le stringhe in utf bisogna usare la classe String, altrimenti i caratteri particolari come: è, é, ò, à, ù, etc riporteranno un conteggio pari a 2 e non a 1. In particolare vedere le note nelle pagine:a InStr e RInStr .
Con LIKE ed il metacarattere *
In questo caso possiamo sapere semplicemente se la parola cercata esiste nella stringa:
1)
Public Sub Button1_Click() Dim $prova As String = "la tenda è grande" ' In vero qui si vuole sapere se la frase, contenuta nella variabile $prova, ' possiede la parola "tenda" affiancata da due spazi: If $prova Like "* tenda *" Then Print "Parola trovata !" Endif End
2) Possiamo anche cercare la parola partendo da uno o più caratteri:
Public Sub Button1_Click() Dim $prova As String = "sale e pepe" ' In questo secondo caso verifichiamo ' se la frase possiede la parola contenente la lettera "p": If $prova Like "*p*" Then Print "Esiste una parola che contiene la lettera \"p|"." Endif End
3) In quest'altro esempio individueremo e mostreremo anche la parola che contiene il carattere:
Public Sub Button1_Click() Dim s As String Dim ss As String[] Dim j As Byte s = "pane e pere" ss = Split(s, " ", "", True) For j = 0 To ss.Max ' Individua la parola contenuta nell'array e la mostra: If ss[j] Like "*r*" Then Print ss[j] Next End
Più in generale riguardo all'operatore Like con il metacarattere * ricordiamo che:
a* indica qualunque stringa (parola) abbia come primo carattere "a"; *b indica qualunque stringa (parola) abbia come ultimo carattere "b"; *c* indica qualunque stringa (parola) abbia in qualsiasi posizione un carattere "c".