Per cercare qualcosa si utilizza la funzione Instr() la cui sintassi è:
dim i as integer
i = Instr(1, "testo in cui cercare", "parola da cercare")
Quindi nel tuo caso sarà:
i = Instr(1,text(1), "? ?")
i assume il valore 0 se non viene trovato niente, altrimenti assume un valore numerico che corrisponde al numero dei caratteri che ci sn prima della parola cercata...esempio:
Hai un testo così:
Questa è una prova.
Con Instr cerchi "prova", allora i avrà valore: 14 perchè:
Q(1)u(2)e(3)s(4)t(5)a(6) (7)è(8) (9)u(10)n(11)a(12) (13)
In realtà sono 13 ma la instr restituisce n + 1 quindi in questo caso 13 + 1 = 14
Ma perchè all'inizio della funzione ho messo 1 (Instr(1,...)?
Perchè quell'1 significa che la instr deve restituire il numero di caratteri contando dall'inizio fino a prova + 1 e se si ripreme ad esempio il pulsante per la ricerca e se nel testo c'è un'altra parola che è sempre prova, quindi due "prova" cosa deve fare? L'1 indica che deve fermarsi al primo, quindi se abbiamo:
Questa è una prova, cioè prova...
In questo caso la Instr si ferma sempre a 14 quindi sempre alla prima "prova" che trova. Come si fa a dirgli che ogni volta ke si preme il pulsante di ricerca si deve andare a cercare le parole successive? Si deve incrementare l'1, in questo modo:
fuori dalla sub si dichiara: dim i as integer
nella form_load si mette: i = 1
nella sub del pulsante si mette:
i = Instr(i,...,...)
if i > 0 then
i = i + 1 'Incremento per la prox ricerca
msgbox "trovata parola"
else
i = 1 'se non la trova si riazzera
end if
+ o - hai capito come funziona?
Ultima modifica effettuata da GrG il 13/11/2008 alle 11:59 |