Stat dans un fichier texte

xabi62 Messages postés 84 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 19 juillet 2006 - 18 juil. 2002 à 08:35
TeKiT Messages postés 39 Date d'inscription jeudi 26 octobre 2000 Statut Membre Dernière intervention 9 août 2002 - 18 juil. 2002 à 15:34
Salut,
Je voudrais pouvoir compter le nombre de fois qu'apparait une chaine("bonjour") dans un fichier texte.
En fait, je crois kil fo parcourir le fichier ligne par ligne et compter le nb de fois qu'apparait ma chaine, mais je n'yarrive pas......

Please HELP ME please.....

XaV

5 réponses

PatDeLaYaute Messages postés 133 Date d'inscription dimanche 28 avril 2002 Statut Membre Dernière intervention 15 janvier 2009 3
18 juil. 2002 à 09:24
salut,

tu peux faire comme ca :

public function NbMot(Texte$ ,RchTxt$) as single
NbMot=0
for i%=1 to len(Texte$)
if instr(i%,Texte$,RchTxt$)<>0 then
NbMot = NbMot + 1
i%=instr(i%,Texte$,RchTxt$)+1
end if
next i%
end function

voilà.
@+
0
TeKiT Messages postés 39 Date d'inscription jeudi 26 octobre 2000 Statut Membre Dernière intervention 9 août 2002
18 juil. 2002 à 10:36
Le ptit problème dans la solution de
PatDeLaYaute est que si tu cherches le mot dit dans ton texte il comptera une ocurence pour les mots tels que redit ou médite....
De plus avec cette solution tu parcours ton texte même s'il ne contient plus le mot
Il suffit donc de modifier la fonction comme suit :
public function NbMot(Texte ,RchTxt) as single
NbMot=0
dim tmp,longueur
tmp=1
longeur=len(RchTxt)
do while tmp<>0 And Len(Texte)>Len(RchTxt)
  tmp=instr(Texte,RchTxt)
   if tmp<>0 Then
     if strcomp(Mid(Texte,tmp+longeur,1)," ")=0 then
      If tmp<2 Then 
        NbMot = NbMot + 1
      Else
        If strcomp(Mid(Texte,(tmp-1),1)," ")=0 Or strcomp(Mid(Texte,(tmp-1),1),"'")=0  Then
           NbMot = NbMot + 1
        End If
      End If 
    End If 
    Texte=Mid(Texte,tmp+longeur)
  End if
Loop
End Function

-----
Un optimiste, c'est un homme qui plante deux glands ......... et qui s'achète un hamac.
0
TeKiT Messages postés 39 Date d'inscription jeudi 26 octobre 2000 Statut Membre Dernière intervention 9 août 2002
18 juil. 2002 à 11:00
<   : corespond au signe inférieur
>   :corespond au signe supérieur
<> : corespond au signe différent

Un optimiste, c'est un homme qui plante deux glands ......... et qui s'achète un hamac.

------------------------------
Réponse au message :
-------------------------------

Le ptit problème dans la solution de
PatDeLaYaute est que si tu cherches le mot dit dans ton texte il comptera une ocurence pour les mots tels que redit ou médite....
De plus avec cette solution tu parcours ton texte même s'il ne contient plus le mot
Il suffit donc de modifier la fonction comme suit :
public function NbMot(Texte ,RchTxt) as single
NbMot=0
dim tmp,longueur
tmp=1
longeur=len(RchTxt)
do while tmp<>0 And Len(Texte)>Len(RchTxt)
  tmp=instr(Texte,RchTxt)
   if tmp<>0 Then
     if strcomp(Mid(Texte,tmp+longeur,1)," ")=0 then
      If tmp<2 Then 
        NbMot = NbMot + 1
      Else
        If strcomp(Mid(Texte,(tmp-1),1)," ")=0 Or strcomp(Mid(Texte,(tmp-1),1),"'")=0  Then
           NbMot = NbMot + 1
        End If
      End If 
    End If 
    Texte=Mid(Texte,tmp+longeur)
  End if
Loop
End Function

-----
Un optimiste, c'est un homme qui plante deux glands ......... et qui s'achète un hamac.
0
PatDeLaYaute Messages postés 133 Date d'inscription dimanche 28 avril 2002 Statut Membre Dernière intervention 15 janvier 2009 3
18 juil. 2002 à 12:37
TeKiT, c'est vrai ce que tu dit, donc petite correction il suffit de remplacer

instr(i%,Texte$,RchTxt$)

par

instr(i%,Texte$,RchTxt$, vbBinaryCompare)

voilà
0

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

Posez votre question
TeKiT Messages postés 39 Date d'inscription jeudi 26 octobre 2000 Statut Membre Dernière intervention 9 août 2002
18 juil. 2002 à 15:34
Un optimiste, c'est un homme qui plante deux glands ......... et qui s'achète un hamac.
0
Rejoignez-nous