je pense qu'il faudrais mettre chaque ligne dans un tableau et rechercher qu'elle est la derniere ligne où il y a "GT 04A PTY"
puis avec le numero de cette ligne recuperer la date et l'heure
Une méthode qui marche sur le papier est à définir avant de coder.... Et déjà il faudrait commencer par savoir ce qu'on cherche le numéro de la dernière ligne qui, son contenu, la date qu'elle contient,...
Si on parcours les lignes du fichier dans l'ordre, au début on a 0 résultat jusqu'à avoir rencontré la première ligne qui... pour mettre à jour résultat : valeur qui nous intéresse pour la dernière ligne lue). Dans ce cas, inutile de lire tout le fichier pour en faire une liste de lignes.
Il suffit de lire le fichier lgne par ligne. On place dans une variable la ligne courante, puis on vérifie si la chaîne cherchée s'y trouve. Si c'est le cas, on recopie la variable dans une autre variable. À la fin, la seconde variable contiendra la dernière occurence de ce que tu cherches.
Le Tout est souvent plus grand que la somme de ses parties.
Si on analyse ton code, on peut se demander à quoi servent tes variables a et b.
Pourquoi lire une ligne avant de traiter la 1ère ligne lue?
A-t-on besoin de savoir la position de la chaine recherchée sur la ligne ? (le find est surtout utile pour connaitre la position de la chaine recherchée)
A quoi sert l'incrémentation de x, sachant qu'au tour suivant, x prendra la valeur de la position de la chaine recherchée si présente ?
Pour faire simple:
lastline="" # j'initialise la variable qui va contenir la dernière ligne
with open("rds.txt",r") as myfile # j'ouvre le fichier en utilisant with (plus simple ici et ne nécessite pas le close)
for myline in myfile: # on parcourt les lignes du fichier
if "GT 04A PTY" in myline: # on regarde si la ligne contient la chaine recherchée
lastline=myline #si c'est le cas, on la charge dans la variable lastline
#ainsi à la fin de la boucle, le fichier est fermé et on a dans lastline, le contenu de la dernière ligne contenant la ligne recherchée
Edit: mon code est une petite amélioration de ton dernier code
tu obtiendras en principe la même chose avec mon code (lastline étant ta variable rds).
la différence entre les 2 codes, est que tu lis en une fois toutes les lignes du fichier dans une liste et que tu travailles ensuite sur cette liste, alors que mon code lit le fichier ligne par ligne et la teste à chaque fois.
Que se passera-t-il si aucune ligne ne contient "GT 04A PTY"?
Lire tout le fichier pour en faire une liste de lignes peut être intéressant si on parcours le fichier depuis la dernière ligne pour trouver la première occurrence de "GT 04A PTY"... Et si le fichier est gros, ne lire que les dernières lignes (en utilisant file.seek) économisera temps CPU (et électricité).
comment mettre les guillemets à la variable d='2024/09/03 17:37' pour que sa fasse d="'2024/09/03 17:37'" ? (pas à la main) ?
e viens d'essayé
d='2024/09/03 17:37'
k=k=d.replace('',"''")
k
"''2''0''2''4''/''0''9''/''0''3'' ''1''7'':''3''7''"
la je seche
Si on a pris la peine d'écrire des tutos, c'est qu'on peut difficilement faire sans... et plutôt que de taper n'importe quoi en espérant que ça le fasse (re)voir le chapitre sur les chaines de caractères de votre tuto préféré ne serait pas du luxe.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.