|
| Iniciado por jlclpb, 03,may. 2020 19:03 - 3 respuestas |
| |
| | | |
|
| |
Miembro registrado 2 mensajes |
|
| Publicado el 03,mayo 2020 - 19:03 |
Bonjour, je veux trouver dans un fichier TXT si uen date au format JJ/MM/AAAA est présente et uniquement dans ce cas, recopier la ligne dans un deuxième fichier. Je ne trouve rien...... help et merci par avance
TANTQUE ligne_lue <> EOT Message ("Nombre lignes lues : "+ nb_lec +" Nombre de lignes écrites : "+nb_ecr) SI VérifieExpressionRégulière (ligne_lue,"*([0-9]{2])/([0-9]{2])/([0-9]{4") = Vrai ALORS ligne_ecr = "" ligne_ecr = ligne_lue fEcritLigne (Lec02, ligne_ecr) nb_ecr++ Message ("Nombre lignes lues : "+ nb_lec +" Nombre de lignes écrites : "+nb_ecr) FIN ligne_lue = fLitLigne(Lec01) nb_lec++ FIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 03,mayo 2020 - 22:01 |
Bonjour, VérifieExpressionRégulière vérifie que la chaîne est au format spécifié. Donc, à moins que ta ligne ne soit qu'une date il est logique que tu ne trouve rien.
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 962 mensajes |
|
| Publicado el 04,mayo 2020 - 08:01 |
hello, ton motif n'est pas bon et en plus si tu cherches une date n'importe où sur la ligne avec tout type de caractère présent, cela m'étonnerait que tu y arrives avec VérifieExpressionRégulière. Le mieux c'est d'utiliser l'objet COM vbscript.regex qui est beaucoup plus puissant. Voici un exemple : fichier en entrée FicLect.txt :
blabla 04/04/2020 blabla blabla 03-02-2015 10/10/2010 héhé blabla blabla blabla blabla 12/10/2018
code :
ligne_lue, ligne_ecr sont des chaînes nb_lec, nb_ecr sont des entiers MonRegexp est un objet automation "vbscript.regexp" Lec01 est un entier = fOuvre("M:\Test\FicLect.txt", foLecture) Lec02 est un entier = fCrée("M:\Test\FicEcr.txt", foLectureEcriture) MonFiltre est une chaîne = ".*[0-9]{2}/[0-9]{2}/[0-9]{4}.*" MonRegexp>>Pattern = MonFiltre SI Lec01 <> -1 ALORS ligne_lue = fLitLigne(Lec01) TANTQUE ligne_lue <> EOT SI MonRegexp>>Test(ligne_lue) = Vrai ALORS ligne_ecr = ligne_lue Trace(ligne_ecr) fEcritLigne (Lec02, ligne_ecr) nb_ecr++ FIN ligne_lue = fLitLigne(Lec01) nb_lec++ FIN Trace("Nombre lignes lues : "+ nb_lec +" Nombre de lignes écrites : "+nb_ecr) FIN
Résultat :

-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2 mensajes |
|
| Publicado el 04,mayo 2020 - 09:31 |
| |
| |
| | | |
|
| | | | |
| | |
|