Compter les lignes de plusieurs fichiers...

Postez ici si vous avez des difficultés a comprendre une commande, ou a créer une macro.
centaure
Messages : 27
Enregistré le : 14 mai 2014, 08:37

Re: Compter les lignes de plusieurs fichiers...

Message par centaure » 10 déc. 2014, 08:42

Merci bcp pour ton aide :)

C'est en fait simple (mais je n'y arrive pas), j'ai un fichier .txt qui me donne la liste d'autre fichiers à vérifier, exemple :

contenu de "vérifier.txt" :

Code : Tout sélectionner

popo.txt
jaques.txt
lucie.txt
etc...
et je dois vérifier que chaque fichiers .txt de cette liste ont plus de 400 lignes... c'est tout :)
Mais manuellement, comme j'ai bcp de fichiers, j'y passe bcp de temps...

Donc je cherche simplement à vérifier si les fichiers de ma liste ont plus de 400 lignes chacun,
si oui = SUPER
si un fichier à moins de 400 lignes = message d'alerte

C'est possible ?

Merci infiniment :)

Avatar du membre
Feitan
Site Admin
Messages : 301
Enregistré le : 11 avr. 2014, 15:15

Re: Compter les lignes de plusieurs fichiers...

Message par Feitan » 10 déc. 2014, 17:40

Bon pour trouver les fichiers c'est pas dur, une simple lecture de la ligne. Tu chope la variable et tu stocke la ligne dans <Var1> et tu lis le fichier en faisant un texte évolué (fichier_à_lire= chemin_du_fichier + <var1>)
Tu lis ensuite chaque ligne du fichier (on peut même commencer à 400 ou 401 plutôt que 1)

Je mets un exemple pour mon propos, si on prends par exemple les 5 dernières ligne du fichier :

398 : texte1
399 : texte2
400 : texte3
401 : texte4
402 : texte5

Si tu lis la ligne 401 tu liras "texte4", la ligne 402 "texte5" le seul problème c'est que si tu lis la ligne 403 tu liras "texte5"
Du coup le but c'est de savoir si tu as des lignes identiques parce qu’il va falloir vérifier si tu arrive au bout de ton fichier. Si toutes tes lignes consécutives sont différentes pas de problème tu vérifie la ligne 400 et 401, si elles sont différentes ton fichier a bien plus de 400 lignes. Sinon ton fichier contient PEUT ÊTRE moins de 400 lignes (mais peut en contenir plus de 400 si la ligne 400 et 401 sont identiques). On peut éviter ce problème quand même mais c'est plus compliqué.

Tiens moi au courant.

centaure
Messages : 27
Enregistré le : 14 mai 2014, 08:37

Re: Compter les lignes de plusieurs fichiers...

Message par centaure » 11 déc. 2014, 08:49

merci beaucoup :) mais... heuu... je sais pas comment dire... mais.... heu...

J'ai rien compris :) lol !
Désolé, je suis pas un grand pro... faut m'expliquer comme à un débutant (et un peut neuneu lol )

Donc voila ce que j'ai fait :

Macro 1 : (qui marche, elle sert juste à lire et copier un par un la liste des fichiers à vérifier, un simple boucle)

Code : Tout sélectionner

Variable	<var_Nom>;;Alpha;
Variable	<var_Compteur>;0;Numerique;
Variable	[CLIPBOARD];[CLIPBOARD];Alpha;
Variable	<Var_Nbre_d_enregistrements>;0;Numerique;
Fonction	<Var_Nbre_d_enregistrements>;Fichier;Nombre d'enregistrement;D:\verif.txt;
Boucle	<Var_Nbre_d_enregistrements>
Calcul	<var_Compteur>;+;1;
Lire	D:\verif.txt;<var_Nom>;<var_Compteur>;
Calcul évolué	[CLIPBOARD]=<var_Nom>
Execute	D:\fichiers.mcr
Pause	00:00:01
Boucle	[FIN]
Ce que j'aimerais faire c'est la macro fichiers.mcr :
fichiers.mcr (qui ne marche pas) :

Code : Tout sélectionner

Variable   <compter_lignes>;0;Numerique;
Variable   <var_Nom>;;Alpha;
Variable   [CLIPBOARD];[CLIPBOARD];Alpha;
Calcul évolué   [CLIPBOARD]=<var_Nom>.txt
Fonction   <compter_lignes>;Fichier;Nombre d'enregistrement;D:\fichiers clients\<var_Nom>;
Examine   <compter_lignes>;<;400;
Message   Message;ATTENTION ! Fichier inférieur à 400 lignes !;
Message   Message;OK;
pas facile à expliquer désolé...

bgmb59
Messages : 8
Enregistré le : 10 déc. 2014, 10:37

Re: Compter les lignes de plusieurs fichiers...

Message par bgmb59 » 11 déc. 2014, 09:22

Tu doit compter des lignes dans des fichiers txt ?

Pourquoi pas simplement faire CTRL+A, CTRL+C
Ouvrir excel, se placer dans la cellule A1
Faire CTRL+V
Dans la barre de recherche tu cherche A400 tu lui demande de voir si elle est pas vide ( tu peut le faire sur excel sa )
Ensuite si pas vide c'est bon sinon ben c'est pas bon et next fichier ....

Car compter depuis un fichier txt t'es chaud :)

Avatar du membre
Feitan
Site Admin
Messages : 301
Enregistré le : 11 avr. 2014, 15:15

Re: Compter les lignes de plusieurs fichiers...

Message par Feitan » 11 déc. 2014, 12:26

Ya moyen que tu nous link un fichier type ? Que je te fasse un exemple parceque j'explique très mal :?

centaure
Messages : 27
Enregistré le : 14 mai 2014, 08:37

Re: Compter les lignes de plusieurs fichiers...

Message par centaure » 13 déc. 2014, 09:15

Merci encore :) j'ai fait un .zip avec des données pour exemple...

Il y a le premier fichier : "mails-a-vérifier.txt " qui contiens la liste des autres fichiers que je doit vérifier (vérifier qu'il y a plus de 400 lignes dans cache fichiers) et (je pense) devrait servir à faire la boucle de base...

dans le dossier "listes" il y a les autres fichiers .txt qui contiennent des données...
Je dois simplement vérifier que chaque contenu de fichiers à plus de 400 lignes :)
mail1@mail.com.txt
mail2@mail.com.txt
mail3@mail.com.txt
mail4@mail.com.txt

à dire, ça à l'air simple, mais à faire en macro, c'est autre chose ! lol :)
Fichiers joints
a vérifier.zip
(9.02 Kio) Téléchargé 179 fois

Avatar du membre
Feitan
Site Admin
Messages : 301
Enregistré le : 11 avr. 2014, 15:15

Re: Compter les lignes de plusieurs fichiers...

Message par Feitan » 13 déc. 2014, 10:42

Hello, j'ai pas testé mais dans l'idée c'est ça :

Code : Tout sélectionner

Variable	<Lire_noms>;;Alpha;
Variable	<Lire_400>;;Alpha;
Variable	<Lire_401>;;Alpha;
Variable	<Lire_noms2>;;Alpha;
Variable	<Ligne>;1;Numerique;
Variable	<Adresse>;;Alpha;
Lire	C:\Users\Feitan\Documents\a vérifier\mails-a-vérifier.txt;<Lire_noms>;<Ligne>;
Label	<Début>
Calcul évolué	<Adresse>=C:\Users\Feitan\Documents\a vérifier\listes\ + <Lire_noms>
Lire	<Adresse>;<Lire_400>;400;
Lire	<Adresse>;<Lire_401>;401;
Examine	<Lire_400>;=;<Lire_401>;
Goto	<moins de 400 lignes>
Message	Message;Il n'y a pas 400 lignes;
Label	<moins de 400 lignes>
Message	Message;Message d'erreur;
Quitter	
Label	<plus de 400 lignes>
Calcul évolué	<Lire_noms2>=<Lire_noms>
Calcul évolué	<Ligne>=<Ligne>+1
Lire	C:\Users\Feitan\Documents\a vérifier\mails-a-vérifier.txt;<Lire_noms>;<Ligne>;
Examine	<Lire_noms>;<>;<Lire_noms2>;
Goto	<Début>
Message	Message;Fin du programme;

Après on peut faire des améliorations comme transférer les fichiers qui contiennent moins de 400 lignes dans un autre fichier ou écrire sur la ligne lue dans le fichier "mail à vérifier" pour éviter de refaire deux fois la même chose. Si tu comprends pas quelquechose hésite pas

centaure
Messages : 27
Enregistré le : 14 mai 2014, 08:37

Re: Compter les lignes de plusieurs fichiers...

Message par centaure » 14 déc. 2014, 10:40

Merci bcp :)

J'ai testé, mais cela ne marche pas hélas... il doit y avoir un petit détail qui bug...
Si je lance tel quel, j'ai un message :

Code : Tout sélectionner

"Nom de fichier invalide (D:\listes\mail1@mail.com). Arret de la macro. [Position 10]
Cela parceque le fichier fini par ".txt", j'ai donc modifié la ligne 9 mais je ne sais pas si j'ai fait comme il faut :

Code : Tout sélectionner

<adresse>=D:\listes\+<Lire_noms>
Remplacé par :

Code : Tout sélectionner

<adresse>=D:\listes\+<Lire_noms>+.txt
Mais alors cela me fait le message d'erreur de la ligne 15 "Message d'erreur"

:(

Avatar du membre
Feitan
Site Admin
Messages : 301
Enregistré le : 11 avr. 2014, 15:15

Re: Compter les lignes de plusieurs fichiers...

Message par Feitan » 14 déc. 2014, 20:57

Oui bien vu pour l'erreur j'avais effectivement oublié l'extension.

edit : attends j'ai dit une connerie

Bon déjà j'ai mis un espace de trop à la ligne 9, du coup c'est pour ça que tu trouve pas le bon fichier.
Ensuite jme suis planté dans le Examine puisque les deux conditions amènent au message d'erreur même si les lignes sont bien différentes. Du coup j'ai fait des modifs et normalement ya pas de problème.

Jte conseille vraiment l'éxécution pas à pas (F8 pour chaque commande), parceque le problème du Execute (F9) c'est que ça t'affiche le message d'erreur même si les deux fichiers avant sont juste.
Du coup je te conseille de faire un premier test avec le pas à pas, mettre bien toutes tes commandes pour obtenir un truc très juste, et après tu pourras le lancer de manière automatisée

Code : Tout sélectionner

Variable	<Lire_noms>;;Alpha;
Variable	<Lire_400>;;Alpha;
Variable	<Lire_401>;;Alpha;
Variable	<Lire_noms2>;;Alpha;
Variable	<Ligne>;1;Numerique;
Variable	<Adresse>;;Alpha;
Lire	C:\Users\Feitan\Documents\a vérifier\mails-a-vérifier.txt;<Lire_noms>;<Ligne>;
Label	<Début>
Calcul évolué	<Adresse>=C:\Users\Feitan\Documents\a vérifier\listes\+ <Lire_noms>+.txt
Lire	<Adresse>;<Lire_400>;400;
Lire	<Adresse>;<Lire_401>;401;
Examine	<Lire_400>;=;<Lire_401>;
Goto	<moins de 400 lignes>
Goto	<plus de 400 lignes>
Label	<moins de 400 lignes>
Message	Message;Message d'erreur;
Quitter	
Label	<plus de 400 lignes>
Calcul évolué	<Lire_noms2>=<Lire_noms>
Calcul évolué	<Ligne>=<Ligne>+1
Lire	C:\Users\Feitan\Documents\a vérifier\mails-a-vérifier.txt;<Lire_noms>;<Ligne>;
Examine	<Lire_noms>;<>;<Lire_noms2>;
Goto	<Début>
Message	Message;Fin du programme;

centaure
Messages : 27
Enregistré le : 14 mai 2014, 08:37

Re: Compter les lignes de plusieurs fichiers...

Message par centaure » 15 déc. 2014, 12:34

Yes !! génial !!! Ca marche !!! Merci infiniement !!

J'ai juste changé un truc à la ligne 17 :
Message Message;<Lire_noms>;
comme ça quand un fichier à moins de 400 lignes, le message me dit lequel :)

Trop bien !!! Merci encore !!! :D

Répondre