Stat dans un fichier texte

Signaler
Messages postés
84
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
19 juillet 2006
-
Messages postés
39
Date d'inscription
jeudi 26 octobre 2000
Statut
Membre
Dernière intervention
9 août 2002
-
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

Messages postés
133
Date d'inscription
dimanche 28 avril 2002
Statut
Membre
Dernière intervention
15 janvier 2009
3
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
Messages postés
39
Date d'inscription
jeudi 26 octobre 2000
Statut
Membre
Dernière intervention
9 août 2002

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
Messages postés
39
Date d'inscription
jeudi 26 octobre 2000
Statut
Membre
Dernière intervention
9 août 2002

<   : 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
Messages postés
133
Date d'inscription
dimanche 28 avril 2002
Statut
Membre
Dernière intervention
15 janvier 2009
3
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
Messages postés
39
Date d'inscription
jeudi 26 octobre 2000
Statut
Membre
Dernière intervention
9 août 2002

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