Cercare una parola in una stringa: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 2: | Riga 2: | ||
Con '''LIKE''' ed il metacarattere '''*''' | ===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) | |||
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
| Riga 17: | Riga 17: | ||
'''End''' | '''End''' | ||
2) | |||
Possiamo anche cercare la parola partendo da uno o più caratteri: | |||
'''Public''' Sub Button1_Click() | |||
Dim $prova As String = "sale e pepe" | |||
<FONT color=006400>' ''In questo secondo caso verifichiamo | |||
' ''se la frase possiede la parola contenente la lettera "p":''</font> | |||
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 | |||
<FONT color=006400>' ''Individua la parola contenuta nell'array e la mostra:''</font> | |||
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 <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"; | |||
*c* indica qualunque stringa (parola) abbia <SPAN style="text-decoration:underline">in qualsiasi posizione</span> un carattere "c"; | |||
Con la funzione '''INSTR''' | ===Con la funzione '''INSTR'''=== | ||
In questo caso verrà restituita la posizione del primo carattere della prima parola trovata fra due o più eventuali, identiche a quella cercata, all'interno della stringa : | In questo caso verrà restituita la posizione del primo carattere della prima parola trovata fra due o più eventuali, identiche a quella cercata, all'interno della stringa : | ||
| Riga 41: | Riga 78: | ||
Con la funzione '''RINSTR''' | ===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 : | 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 : | ||
| Riga 62: | Riga 99: | ||
===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]] . | 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]] . | ||
Versione delle 09:16, 23 ott 2012
Per cercare una parola in una stringa potranno essere usate diverse soluzioni.
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";
Con la funzione INSTR
In questo caso verrà restituita la posizione del primo carattere della prima parola trovata fra due o più eventuali, 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" Dim pos As Byte pos = InStr($prova, "tenda") Print pos End
Il risultato in console sarà:
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 :
Public Sub Button1_Click() Dim $prova As String = "la tenda rossa era grande come la tenda verde" Dim pos As Byte pos = RInStr($prova, "tenda") Print pos End
Il risultato in console sarà:
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 .