[R] Compter le nombre de mot dans un fichier texte

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
franck99
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mar. 07 oct. 2008 20:50
Status : Hors ligne

[R] Compter le nombre de mot dans un fichier texte

#1

Message par franck99 »

Bonjour,

Etant débutant sur Autoit je sollicite votre aide.
Après plusieurs recherches sur le forum je n'ai pas trouvé de solution.

Mon objectif est de compter le nombre de fois qu'apparaît le mot open dans un fichier texte.
J'ai commencé par :
► Afficher le texte

Merci d'avance.
Modifié en dernier par franck99 le mer. 08 oct. 2008 11:09, modifié 3 fois.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Compter le nombre de mot dans un fichier texte

#2

Message par sylvanie »

Bonsoir,
Il me semble que le sujet avait été abordé qq part, mais je ne sais plus où ...
En attendant voici 2 méthodes de recherche en mode non case sensitif, une par stringinstr l'autre par stringregexp

:
► Afficher le texte
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

Re: [..] Compter le nombre de mot dans un fichier texte

#3

Message par moutelous »

Bonjour,

Juste une toute petite précision : pour le regex je remplacerais

Code : Tout sélectionner

$resul=StringRegExp($contenu,"(?i)"&$text,3)
par

Code : Tout sélectionner

$resul=StringRegExp($contenu,"(?i)\b"&$text&"\b",3)
pour éviter de compter des occurrences de "open" inclus dans un mot (openbar par exemple :wink: )

A+
A+
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Compter le nombre de mot dans un fichier texte

#4

Message par sylvanie »

effevtivement. du coups ceci reste aussi vrai avec le stringinstr, cependant c'est plus délicat à peaufiner. Finalement qui a dit que les expressions régulières étaient compliquées :mrgreen:
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Compter le nombre de mot dans un fichier texte

#5

Message par Tlem »

Image
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Compter le nombre de mot dans un fichier texte

#6

Message par jbnh »

Ca me semble bizarre mais... j'ai l'impression qu'il y a moyen en deux lignes:

Code : Tout sélectionner

$array = stringsplit('Salut ca va oui moi ca va bien', ' ')
MsgBox(0x0, "total", number(UBound($array)-1))
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

Re: [..] Compter le nombre de mot dans un fichier texte

#7

Message par moutelous »

Bonjour,

@ jbnh ....

Dur dur le matin ... :wink: il me semble que tu as lu la demande de frank99 un peu en diagonale ....

Il faut en fait compter le nombre total d'un mot bien particulier dans un fichier texte ....
franck99 a écrit :Mon objectif est de compter le nombre de fois qu'apparaît le mot open dans un fichier texte.
A+
A+
franck99
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mar. 07 oct. 2008 20:50
Status : Hors ligne

Re: [..] Compter le nombre de mot dans un fichier texte

#8

Message par franck99 »

bonjour,

Un grand merci à vous tous : moutelous,jbnh,tlem,sylvanie... et tout le forum :D
Je trouve la méthode regex vraiment top.

Par contre, j'ai du mal avec IsArray ces tableaux comment se représente-t-il, une colonne avec un ID et une autre avec une ligne ou des mots du fichier texte ?

Merci.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [R] Compter le nombre de mot dans un fichier texte

#9

Message par jbnh »

@moutelous: haha j'ai bien rit, j'ai carrément pas lu en diagonal j'ai lu que le titre !!! complètement a coté de la plaque le jbnh

@franck99:

Isarray permet enfait de seulement valider le fait que notre résult soit bien une array pour continuer à faire une suite d'actions et comme tu l'as bien dit: un tableau comprend une colonne avec 'l'ID' ( result[0] , [1] etc.) et le texte auquel il correspond (en l'occurrence ici que des open vu que c'est le mot qu'on cherche).

Vla l'exemple:

Code : Tout sélectionner

#include <array.au3>
$text="open"
$len_text=StringLen($text)
$contenu=FileRead("toto.txt")



;méthode regexp
$resul=StringRegExp($contenu,"(?i)"&$text,3)
If IsArray($resul) Then
_ArrayDisplay($resul, 'open')
EndIf
 

Et en bonus ma méthode mais complète cette fois ci :) :

Code : Tout sélectionner

$text="open"
$len_text=StringLen($text)
$contenu=FileRead("toto.txt")

$array = stringsplit($contenu, ' ')

If IsArray($array) Then

$i=0
$a=0
    Do
        If $array[$i] = $text Then
        $a =$a+1
        Endif
    $i=$i+1
    Until $i = Number(UBound($array))
EndIf

MsgBox(0,"résultat",$text&" a été trouvé "&$a&" fois")
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

Re: [R] Compter le nombre de mot dans un fichier texte

#10

Message par moutelous »

Bonsoir,

@jbnh ....

Ton bonus fonctionne bien dans le cas d'une phrase avec espace .... il fonctionne légèrement moins bien dans le cas d'un texte où les occurrences peuvent être séparés par des virgules, point virgules ou autres retours chariots.


A+
A+
Répondre