Salut,
Pourriez vous me dire comment je peux calculer le nombre d'occurence d'un mot par exemple "test" qui existe dans un fichier file.txt
Merci.
Salut,
Pourriez vous me dire comment je peux calculer le nombre d'occurence d'un mot par exemple "test" qui existe dans un fichier file.txt
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Private Sub Command1_Click() Dim Tampon As String, Position As Integer, NbOccur As Integer Open "d:\svg\liste.txt" For Binary As #1 Tampon = Space$(LOF(1)) Get #1, , Tampon Close #1 Position = InStr(1, Tampon, "test", vbTextCompare) Do While Position > 0 NbOccur = NbOccur + 1 Position = InStr(Position + 11, Tampon, "test", vbTextCompare) Loop MsgBox NbOccur End Sub
Bidou, pourquoi + 11 ? C'est pas plutôt + 4 (ou plus exactement la longueur de la chaîne recherchée) ?Envoyé par bidou
Mathieu D.
Un verre vide se plaint, un verre plein se vide ...
non, c'est plus 1 avec mon parkinson
j'aimerai bien savoir est ce que +4 ou bien +11 ? et prq ?
Je viens d'essayer ça, c'est marrant comme méthode !
Plus court, cela devient difficle...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim Tableau() As String Tableau = Split("Salut, Pourriez test vous me dire comment je peux calculer le nombre" & _ "d'occurence d'un mot par exemple test qui existe dans un fichier file.txt. Merci", _ "test") Debug.Print "Nombre d'occurence : " & UBound(Tableau)
Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.
c'est + 1 ou +4 comme tu veux
Plus lent aussi d'ailleurs, parce que Split pour faire du décompte...Plus court, cela devient difficle...
J'ai dis que je trouvai ça marrant, pas performant !Envoyé par bidou
C'est a voir, mais je n'ai pas fais l'essai.
Mais je suppose que Split n'est pas écrite en VB et je ne serai pas surpris qu'elle soit plus rapide que le code vb suivant :
Maintenant je suis d'accord avec toi, c'est une fois très détournée d'utiliser la fonction Split.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Position = InStr(1, Tampon, "test", vbTextCompare) Do While Position > 0 NbOccur = NbOccur + 1 Position = InStr(Position + 1, Tampon, "test", vbTextCompare) Loop
Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.
Plus vite il n' y a pas beaucoup de chance, Instr n'est pas écrite en VB non plus
La vitesse sera quasiment égale s'il y a peu d'occurence et nettement moins bonne pour split s'il y en a beaucoup.
A coder, on peut encore faire plus rapide : en une ligne sans variable intermédiaire. !
Allez, Bidou, fait moi plaisir et dis-moi que c'est tout de même pratique
Code : Sélectionner tout - Visualiser dans une fenêtre à part MgsBox Ubound(Split(Tampon,"test"))
Au moins spootnic22 tu as le choix !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Private Sub Command1_Click() Dim Tampon As String ', Position As Integer, NbOccur As Integer Open "d:\svg\liste.txt" For Binary As #1 Tampon = Space$(LOF(1)) Get #1, , Tampon Close #1 'Position = InStr(1, Tampon, "test", vbTextCompare) 'Do While Position > 0 ' NbOccur = NbOccur + 1 ' Position = InStr(Position + 11, Tampon, "test", vbTextCompare) 'Loop 'MsgBox NbOccur MgsBox ubound(Split(Tampon,"test")) End Sub
Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.
Disons que c'est plus court à coder, je te l'accorde bien volontiersEnvoyé par Najdar
Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager