Retrouver un mot dans une chaine [Résolu]

Signaler
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
-
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
-
Salut j'ai dans un fichier text des ligne que je reprend dans un string

Comment faire pour retrouver un mot dans le string

exemple :

le livre de la mer du nord est la venue de la ville ect.........

comment retrouver par exemple nord

Merci

6 réponses

Messages postés
261
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
18 mai 2009
3
utilise les espaces...


dim p as integer
p = instr(" " & Tastring & " " , TonMot)

if p>0 then msgbox(mid$(tastring,p+1, len(Tonmot)))

bon, il faut rajouter un test avec une virgule apres...
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
Sinon, tu as une autre méthode si ton texte ne fait pas des kilomètres. Le split :

dim t() as string
t = split(TonTexte," ")

et tu l'interroges comme ça :
dim i as integer
for i = 0 to ubound(t)
if t(i) like TonMot & "*" then
msgbox "trouvé"
exit for
endif
next

tu peux même compter le nombre de fois que tu le trouves
dim i as integer
dim cpt as integer
cpt = 0
for i = 0 to ubound(t)
if t(i) like TonMot & "*" then
cpt=cpt +1
endif
next

j'utilise like au lieu de =, comme ça tu peux aussi trouver les les "commençant par".

et puis, si les ponctuations te gènent, avant tu fais :
TonTexte = replace(TonTexte, ".","")
TonTexte = replace(TonTexte, ",","")
TonTexte = replace(TonTexte, "!","")
TonTexte = replace(TonTexte, "?","")
etc....

encore plus loin, quand tu effaces un "!" par exemple dans "hue ! au galop" il te reste un double espace que tu peux remplacer par 1 seul :
TonTexte = replace(TonTexte, " "," ")

Cordialement, CanisLupus
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
salut

dim p as integer
p = instr(Tastring, TonMot)

if p>0 then msgbox(mid$(tastring,p, len(Tonmot)))

Cordialement, CanisLupus
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
Sa marche en partie car quand tu fait par exemple

"la partie de charles est la face avant de ....." comme string
et que je cherche "les" il me donnes "charles"
je voudrais qu'il rechere uniquement "les"
c'est un exemple bien sur

Merci
Messages postés
57
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

Une virgule?
Et un point, et un point d'exclamation, etc.
Il faudrait, si tu veux seulement les mots, t'assurer qu'il y a un symbole qui n'est pas une lettre avant et apres le string (sauf si le mot commence ou finit la chaine). sans avoir a refaire le test 204^2 fois!

Il faut donc que le code de caractere ASCII avant et apres le mot trouvé ne soit pas plus grand que celui qui représente la plus grande lettre, et pas plus petit que le code repr/sentant "a". (Avec les fonction Asc et Mid)

C'est le seul moyen que je vois personnellement...

(Corrigez-moi si je me trompe)
Messages postés
261
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
18 mai 2009
3
oui mais il faut aussi tenir compte des accents



trouver 'jet" dans 'La jeté'



bon courrage