Comment rechercher un mot dans un paragraphe

Résolu
cs_Fremarx Messages postés 53 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 23 août 2010 - 13 avril 2007 à 16:46
cs_Fremarx Messages postés 53 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 23 août 2010 - 19 avril 2007 à 12:12
            Je ne sais si cette question est déjà posée mais je ne l'ai vu nul part depuis que je cherche
            Je suis nouveau en VB et j'aimerais savoir comment faire pour rechercher un motif qui apparaît plusieus fois dans un document. J'ai fais une importation dans un RichTextBox d'un fichier txt et j'aimerais retrouver dans ce fichier tous les mots commençant par FRM.
            D'avance je vous remercie.

 Il faudra compter avec les africains "LIFE GOES ON"

8 réponses

hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
13 avril 2007 à 20:36
c'est à toi d'écrire une petite routine permettant d'énumerer toutes les occurences de la chaine recherchée :

exemple :

Passe ta chaine source et la chaine recherché en parametre de ta fonction, puis :

boucle tant que (chaine recherchée est trouvé dans source) 
   tempo=tempo à partir de la position de chaine recherchée
   incrémentation de ton compteur
fin boucle
renvoit du compteur

ce qui donne en vb.net :

Public
Function compteMot(
ByVal source
As
String,
ByVal recherche
As
String)
As
Integer
Dim rescount
As
Integer = 0

Do
While source.IndexOf(recherche) >= 0
rescount += 1
source = source.Substring(source.IndexOf(recherche) + recherche.Length)

Loop
Return rescount

End
Function
Mais je pense qu'avec une petite recherche, tu n'auras meme pas eu à developper ta propre version...

Hvb a.k.a Batto
http://batto.info/ ^^x
bato.ltd .at. gmail.com
3
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
13 avril 2007 à 20:38
erf, c'est galère ce soucis de copier coller entre visual studio et le forum, des espaces sont perdus...
le bon code :

    Public Function compteMot(ByVal source As String, ByVal recherche As String) As Integer
        Dim rescount As Integer = 0
        Do While source.IndexOf(recherche) >= 0
            rescount += 1
            source = source.Substring(source.IndexOf(recherche) + recherche.Length)
        Loop
        Return rescount
    End Function

Hvb a.k.a Batto
http://batto.info/ ^^x
bato.ltd .at. gmail.com
3
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
13 avril 2007 à 16:51
Tu as beaucoup cherché ...

Voilà encore aujourdh'ui :

http://www.vbfrance.com/infomsg_RECUPERER-DANS-STRING-CERTAINE-LIGNE-TEXTBOX_921139.aspx#4

ce n'est pas exactement la même chose et c'est du VB6 mais c'est presque pareil ...
0
Big200148 Messages postés 149 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 23 juillet 2009
13 avril 2007 à 16:52
utilise Instr
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Fremarx Messages postés 53 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 23 août 2010
13 avril 2007 à 19:31
Merci bien à toi Big200148
mais problème reste encore posé car le même mot est répéter plusieurs fois dans le texte et j'aimerais savoir combien de fois je vais le retrouver dans le texte j'ai utilisé la fonction Indexof  mais je ne suis pas satisfait du résultat.

 Il faudra compter avec les africains "LIFE GOES ON"
0
cs_Fremarx Messages postés 53 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 23 août 2010
16 avril 2007 à 09:50
Merci beaucoup à toi HVB
Je te remercie pour le code je vais l'essayer et faire signe au forum si cela réponds à mes attentes.

 Il faudra compter avec les africains "LIFE GOES ON"
0
cs_Fremarx Messages postés 53 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 23 août 2010
19 avril 2007 à 10:41
Salut HVB
j'ai une petit préoccupattion peut tu m'aider:
Je fais des recherches dans un RichTextBox que j'arrive à renvoyer dans un autre RichTextBox mais mon problème maintenant c'est que les résultats que j'ai j'aimerais les renvoyer dans un tableau afin de pouvoir travaillez encore sur ses résultats:

Public

Function CompteBL(
ByVal SourceBl
As
String,
ByVal RechercheBL
As
String)
As
Integer
Dim rescountBl
As
Integer = 0

Dim str
As
String
Try
Do
While SourceBl.IndexOf(RechercheBL) >= 0
rescountBl += 1
SourceBl = SourceBl.Substring(SourceBl.IndexOf(RechercheBL) + RechercheBL.Length)
str = SourceBl.Substring(0, SourceBl.IndexOf("BL1"))
RT1.Text += Chr(10) & Chr(10) & Chr(10) & str.ToString()

Loop
Catch ex
As ArgumentOutOfRangeException
Console.WriteLine(ex.Message.ToString())

End
Try
Return rescountBl

End
Function
Maintenant j'aimerais pouvoir récupérer les informations dans un tableau
et là je fais :

Dim tableau()
As
String

et j'insère l'instruction suivante dans la fonction juste après le str comme ceci:

tableau(rescountBl) = SourceBl.Substring(0, SourceBl.IndexOf("BL1"))

Mais cette fois si je mets le rescountBl juste avant le Loop

 Il faudra compter avec les africains "LIFE GOES ON"
0
cs_Fremarx Messages postés 53 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 23 août 2010
19 avril 2007 à 12:12
Voici l'erreur que j'obtiens quand je fais la fonction de cette manière

Une exception non gérée du type 'System.NullReferenceException' s'est produite dans BL.exe
Informations supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet.

 Il faudra compter avec les africains "LIFE GOES ON"
0
Rejoignez-nous