Page 1 sur 1

[R] Connaitre le nombre d'occurence d'un mot dans une ligne

Posté : lun. 15 févr. 2010 16:46
par GhostLine
Salut à tous !

Je reviens encore vers vous avec un de mes sempiternels problèmes de traitement de fichier plat :lol:

Voilà l'idée : je génère un fichier .CSV dans lequel je voudrais compter le nombre d'occurrences d'un mot (les fichiers CSV sont des fichiers plats préformatés pour être importés dans Excel, avec des valeurs séparées de ; ).

Comme d'hab, s'agissant de données bancaires, je ne peux pas vous donner de fichier d'exemple (désolééééééé :oops: ). Je cherche à compter indifféremment le nombre d'occurrence du mot Télécollecte et du mot Clôture .

Merci d'avance de votre aide ! :)

Re: [..] Connaitre le nombre d'occurence d'un mot dans une ligne

Posté : lun. 15 févr. 2010 17:14
par eric
Bonjour,

Voici une solution :

Code : Tout sélectionner

$ouvrircsv = FileOpen ("C:\monfichier.csv",0) ; ouvre le fichier csv

$fichiercsv = FileRead ($ouvrircsv) ; lit le fichier csv

StringReplace($fichiercsv,"Télécollecte","Télécollecte") ; remplace Télécollecte par Télécollecte

MsgBox(4096,"nombre d'occurence",@extended) ; affiche le nombre de remplacement

FileClose ($ouvrircsv) ; ferme le fichier csv

Re: [..] Connaitre le nombre d'occurence d'un mot dans une ligne

Posté : lun. 15 févr. 2010 17:28
par GhostLine
J'ai oublié "par ligne" pour ma recherche ^^'

J'avais aussi trouvé le @extended entre le moment où j'ai posté le message et maintenant : c'est clairement la clef :)

edit :

Code : Tout sélectionner

$ouvrircsv = FileOpen ("D:\axconfig.csv",0) ; ouvre le fichier csv

for $i=1 to _FileCountLines("D:\axconfig.csv")
    $fichiercsv = FileReadLine ($ouvrircsv) ; lit le fichier csv
    StringReplace($fichiercsv,"Télécollecte","Télécollecte") ; remplace Télécollecte par Télécollecte
    MsgBox(4096,"nombre d'occurrences : ",@extended) ; affiche le nombre de remplacement
Next

FileClose ($ouvrircsv) ; ferme le fichier csv
Merci pour ton aide, en tout cas !

Re: [..] Connaitre le nombre d'occurence d'un mot dans une ligne

Posté : lun. 15 févr. 2010 17:40
par eric
Ou un truc dans ce style

Code : Tout sélectionner

#Include <File.au3>

$fichier = "C:\mon fichier.csv"

$nombreligne = _FileCountLines($fichier)

$ouvrircsv = FileOpen ($fichier,0)

For $i=1 to $nombreligne

$fichiercsv = FileReadline ($ouvrircsv,$i)

StringReplace($fichiercsv,"Télécollecte","Télécollecte")

MsgBox(4096,"Ligne" & $i,"Nombre d'occurence = " & @extended)

Next

FileClose ($ouvrircsv)

Re: [RE] Connaitre le nombre d'occurence d'un mot dans une ligne

Posté : lun. 15 févr. 2010 18:15
par Tlem
@GhostLine

La balise [RE] n'existe pas et de plus, la coloration syntaxique du code est réservée aux forums : Merci de faire le nécessaire pour corriger cela.

Re: [R] Connaitre le nombre d'occurence d'un mot dans une ligne

Posté : mar. 16 févr. 2010 08:40
par GhostLine
Tlem> au temps pour moi, je devrais le savoir, depuis le temps ^^'