Page 2 sur 3
Re: Compter les lignes de plusieurs fichiers...
Posté : 10 déc. 2014, 08:42
par centaure
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" :
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

Re: Compter les lignes de plusieurs fichiers...
Posté : 10 déc. 2014, 17:40
par Feitan
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.
Re: Compter les lignes de plusieurs fichiers...
Posté : 11 déc. 2014, 08:49
par centaure
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é...
Re: Compter les lignes de plusieurs fichiers...
Posté : 11 déc. 2014, 09:22
par bgmb59
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

Re: Compter les lignes de plusieurs fichiers...
Posté : 11 déc. 2014, 12:26
par Feitan
Ya moyen que tu nous link un fichier type ? Que je te fasse un exemple parceque j'explique très mal

Re: Compter les lignes de plusieurs fichiers...
Posté : 13 déc. 2014, 09:15
par centaure
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

Re: Compter les lignes de plusieurs fichiers...
Posté : 13 déc. 2014, 10:42
par Feitan
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
Re: Compter les lignes de plusieurs fichiers...
Posté : 14 déc. 2014, 10:40
par centaure
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 :
Remplacé par :
Mais alors cela me fait le message d'erreur de la ligne 15 "Message d'erreur"

Re: Compter les lignes de plusieurs fichiers...
Posté : 14 déc. 2014, 20:57
par Feitan
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;
Re: Compter les lignes de plusieurs fichiers...
Posté : 15 déc. 2014, 12:34
par centaure
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 !!!
