Tester un mot entier dans une chaine

Signaler
Messages postés
19
Date d'inscription
mardi 29 janvier 2002
Statut
Membre
Dernière intervention
21 juillet 2005
-
Messages postés
124
Date d'inscription
mardi 19 février 2002
Statut
Membre
Dernière intervention
7 mars 2004
-
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

Messages postés
39
Date d'inscription
jeudi 26 octobre 2000
Statut
Membre
Dernière intervention
9 août 2002

#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
Messages postés
124
Date d'inscription
mardi 19 février 2002
Statut
Membre
Dernière intervention
7 mars 2004
1
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