Oppure

Loading
13/11/08 8:22
salve ragazzi....
e' da qualche giorno che mi sto' scervellando su un problema , forse piuttosto semplice ,....

io ho due text con una serie di numeri separati tra di loro da uno spazio es. no 256 ma 2 5 6 ....
devo fare in modo di confrontare due numeri per colta di una text se non presenti nell'altra
es.
text(0)= 1 3 5 6 8 2
text(1)= 6 8 3 4 9 0

devo verificare se i numeri della text(0) 1 3 sono presenti nella text(1) ma non separatamente ma assieme come si farebbe su un ambo del gioco lotto (tanto per intenderci).....e poi passare ai numeri 5 6 e cosi' via.....

avete qualche idea sulla fattibilita' di questo?

ciao a tutti
13/11/08 9:02
GrG
allora tu hai detto che sia in text(0) che in text(1) tutti i numeri sono separati da uno spazio, allora che significato ha riunirli?

Non puoi cercare direttamente "1 3" visto che se sn presenti in text(1) si presentano sotto questa forma?

Cmq non sei stato molto chiaro nel descrivere il tuo probl...
aaa
13/11/08 9:54
no non voglio riunirli voglio cercare "1 3" , solo che i numeri cambiano dopo un po' non sono sempre gli stessi....io ho messo dei numeri d'esempio....
vorrei ma non riesco creare un ciclo for che mi cerchi "? ?" all'interno della text(1)
non riesco ad impostare un ciclo for che mi permetta di cercare questo

13/11/08 10:57
GrG
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 13/11/08 10:59
aaa
20/11/08 17:18
grazie mille della abbondante spiegazione, sono riuscito a risolvere il problema....