|
| Rechercher une chaîne dans un fichier |
| Iniciado por cecile.aliaga, 27,ene. 2020 11:41 - 3 respuestas |
| |
| | | |
|
| |
| Publicado el 27,enero 2020 - 11:41 |
Bonjour, Je cherche à trouver une chaîne particulière dans un fichier. Ma chaîne dans le fichier est construit comme : date-heure-mot clé La date est au format JJ/MM/AA L'heure au format HH:MM:SS
sDate = DateVersChaîne(gsDate,"JJ/MM/AA") sHeure = HeureVersChaîne(gsHeure,"HH:MM:") sTexte est une chaîne = fChargeBuffer(fRepEnCours()+"fichier.txt") nPosi est un entier = Position(sTexte ,sDate+"-"+sHeure+"00"+"-Toto") nLigne est un entier = PositionVersLigne(sTexte ,nPosi)
Ici je récupère bien la ligne correspondante.
Le problème est donc que les secondes peuvent être variable (ici elles sont entrées en dure "00"). Lors de ma recherche je n'aurais pas les secondes exactes.
J'ai l'impression que Position n'accepte pas une expression régulière.
nPosi est un entier = Position(sTexte ,sDate+"-"+sHeure+"[0-9]{2}"+"-Toto")
Comment puis-je récupérer ma ligne sans connaitre les secondes ? Merci |
| |
| |
| | | |
|
| | |
| |
| Publicado el 27,enero 2020 - 12:13 |
Bonjour, J'ai trouvé au lieu d'essayer de trouver la chaine en une seule fois, je la récupère en 2 fois D'abord un position sur la date heure puis un position sur le mot clé
Merci |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 27,enero 2020 - 12:15 |
Bonjour, A première vue, il va falloir faire ta recherche en 2 temps : Dans un premier temps sur le GDH sans les sec, dans un 2° temps sur la clé dans le résultat de la première recherche
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 52 mensajes |
|
| Publicado el 27,enero 2020 - 12:40 |
2 = nombre de caractères à sauter 1 = position initiale à rechercher
Position est numérique = WildCard_Position(sTexte, sDate+"-"+sHeure , 2, "-Toto", 1)
Procedure WildCard_Position(OTexto, STexto1, nJump, STExto2, NPos) TANTQUE NPos>0 NPos=Position(OTexto, STexto1, NPos) SI NPos>0 ALORS SI Milieu(OTexto, NPos+Taille(STexto1)+nJump,Taille(STExto2))=STExto2 THEN RENVOYER NPos SINON NPos++ FIN FIN FIN RENVOYER 0 Mensaje modificado, 27,enero 2020 - 12:58 |
| |
| |
| | | |
|
| | | | |
| | |
|