Tester un mot entier dans une chaine

cs_yoda Messages postés 19 Date d'inscription mardi 29 janvier 2002 Statut Membre Dernière intervention 21 juillet 2005 - 9 août 2002 à 11:34
cs_thitoune Messages postés 124 Date d'inscription mardi 19 février 2002 Statut Membre Dernière intervention 7 mars 2004 - 9 août 2002 à 14:09
Bonjour Amis Développeur,

Mon problème est le suivant.
J'ai un mot a tester : gesart%
Je lis un fichier texte et je trouve par exemple la phrase suivante : if essai_gesart% then.......
Qaund je teste mon mot dans cette phrase vb va le trouvé même si il fait partie d'un autre mot.
Y a t il en VB une focntion ou une option de recherche qui permet de ne tester que le mot entier et non pas caractère par caractère...

Merci

2 réponses

TeKiT Messages postés 39 Date d'inscription jeudi 26 octobre 2000 Statut Membre Dernière intervention 9 août 2002
9 août 2002 à 12:10
#solution simple mais intelligente introduire des espaces avant et après ...
Instr(chaine," gesart% ")

Je me souviens plus du nom de la constante VB qui représente les espaces ... mais elle permettrait d'aller plus vite ..VBspace ???
=> Instr(chaine,VBSpace&"gesart%"&VBSpace)


------------
Un optimiste, c'est un homme qui plante deux glands ......... et qui s'achète un hamac.
0
cs_thitoune Messages postés 124 Date d'inscription mardi 19 février 2002 Statut Membre Dernière intervention 7 mars 2004 2
9 août 2002 à 14:09
Une version un peu plus synamique :
Dim str As String
Dim idx As Integer
Dim mot As String

str = "if essai_gesart% then......."
mot = "gesart%"
idx = InStr(str, mot)

'pas trouvé !
If idx = 0 Then
MsgBox ("Pas trouvé")
Else If idx 1 And Mid$(str, idx + Len(mot), 1) " " Then
MsgBox ("ok")
Else
If idx <> 1 Then If Mid$(str, idx - 1, 1) " " And Mid$(str, idx + Len(mot), 1) " " Then
MsgBox ("ok")
Else
MsgBox ("Pas ok")
End If
Else
MsgBox ("Pas bon")
End If
End If

End If
0
Rejoignez-nous