View Full Version : Cercare dentro una stringa
Ciao;
Come posso individuare la presenza di un determinato carattere contenuta in una stringa?
Es. stringa: 123|456|789|4698
Vorrei verificare che ad es. il 456 si già presente o meno
avevo provato così:
If InStr(1, stringa, testodacercare, vbTextCompare) > 0 Then
MsgBox "valore già presente": Exit Sub
End If
però non funziona a dovere in quanto non viene considerato tutto il dato da verificare, ma solo una parte di esso.
Ciao
Prova così:
If InStr(stringa, testodacercare) > 0 Then
MsgBox "valore già presente": Exit Sub
End If
OK! Sembra che funziona. Ti ringrazio...
...nulla di che :ubriachi:
Ciao;
Incredibile ma vero sembra che ancora non faccia in pieno il suo dovere questa funzione.
esempio se la stringa fosse composta dalla cifra 116 e vorrei verificare se esiste il solo n. 6 mi dice che esiste ma e errato in quanto si esiste ma fa parte del 116 e non singolarmente solo il n. 6
:muro: :muro:
Ma carmen... ehehhehe, quella funzione fa il suo dovere a meraviglia :)
Mettiamo questi esempi con la seguente stringa:
Stringa1="60;160;1600;16000;"
Es1:
Vuoi cercare il numero 60, lo troverà nella posizione 1, ... tutto questo è corretto dato che lui cerca una stringa dentro un'altra stringa! A lui nn importa se sono numeri, indirizzi email o pincopallino, l'importante è che trovi una corrispondenza!
Es2:
Vuoi cercare il numero 160, allora basta che dici -> InStr(Stringa1,"160;") , così lui cerca quel blocco e lo troverà che parte dalla posizione 4
Capito? :oink:
Originariamente inviato da Carmen
Ciao;
Incredibile ma vero sembra che ancora non faccia in pieno il suo dovere questa funzione.
esempio se la stringa fosse composta dalla cifra 116 e vorrei verificare se esiste il solo n. 6 mi dice che esiste ma e errato in quanto si esiste ma fa parte del 116 e non singolarmente solo il n. 6
:muro: :muro:
volessi :|
inoltre quello che tu vuoi è un confronto numerico, che ha una logica di funzionamento diversa da quella della ricerca di una sottostringa
La sintassi l'avevo capito ed apparentemente sembrava che funzionava fin quando non mi sono imbattura nella verifica di due numeri come ad es. 116 e 6
Mi diceva che il n. 6 era presente nonostante la stringa fosse composta soltanto cosi
Stringa:"116|"
Per maggiore chiarezza allego l'esempio
Facendo delle prove sono arrivata a questa soluzione. Non sò se sia la migliore:
label1="116|216|300|"
ListaDoc = Split(Left(Label1, Len(Label1) - 1), "|")
For i = 0 To UBound(ListaDoc)
If ListaDoc(i) = Text1 Then MsgBox "Dato già presente nella stringa": Exit Sub
Next
Esiste qualche altro metodo migliore??? ;)
Secondo me è un ottima soluzione :)
Stavo per dirtela io, ma il tanto lavoro mi impedisce di venire sempre sul forum, ma ci sei arrivata da sola, quindi complimenti!!! :p
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.