Bonjour à tous, J'utilise sur mon téléphone sous androïd, un logiciel qui s'appelle mytracks, ce logiciel génère des rapports sur des parcours que je fais, et le but c'est à la fin du mois de récupérer les informations pour en créer un feuille de route. La difficulté c'est que régulièrement le logiciel est mis à jour et le fichier qui est généré après une mise à jour est différent du précédent format. Voici à quoi ça ressemble dans sa version 1.15 [code]Mes parcours sur Android

Distance totale: 2,35 km (1,5 mile(s))
Durée totale: 05:26
Durée de déplacement: 04:11
Vitesse moyenne: 25,88 km/h (16,1 miles/h)
Vitesse moyenne de déplacement: 33,69 km/h (20,9 miles/h)
Vitesse maximale: 73,80 km/h (45,9 miles/h)
Élévation minimale: 266 m (872 pied(s))
Altitude maximale: 294 m (966 pied(s))
Dénivelé: 23 m (76 pied(s))
Niveau maximal: 2 %
Niveau minimal: -12 %
Heure d'enregistrement: 06/02/2012 8:55
Type d'activité: -
[/code] et voici à quoi cela ressemble dans la version 1.16 : [code]Mes parcours sur Android

Distance totale : 13,87 km (8,6 mi)
Durée totale : 18:59
Durée du déplacement : 15:15
Vitesse moyenne : 43,81 km/h (27,2 mi/h)
Vitesse moyenne de déplacement : 54,57 km/h (33,9 mi/h)
Vitesse max. : 104,42 km/h (64,9 mi/h)
Allure moyenne : 1,37 min/km (2,2 min/mi)
Allure moyenne de déplacement : 1,10 min/km (1,8 min/mi)
Allure min. : 0,57 min/km (0,9 min/mi)
Élévation max. : 419 m (1375 pi)
Élévation min. : 274 m (899 pi)
Dénivelé : 155 m (508 pi)
Inclinaison max. : 4 %
Inclinaison min. : -4 %
Date d'enregistrement : 27/03/2012 13:47
Type d'activité : -
]]>[/code] dans ces fichiers il me faut donc : l'heure de départ l'heure d'arrivée la durée la date la distance et pour bien compliquer les choses il faut que le script puisse gérer les deux types de version et s'arrêter avec une alerte si un changement de version change le fichier généré Merci à tous pour l'aide que vous pourrez m'apporter

4 réponses


Leny
Réponse acceptée

Quand je dois écrire une regex complexe, je ne peux me séparer de Rubular : tu lui donnes des textes d'exemple, puis tu fais ta regex et voit en direct si les résultats sont concrets.
Bon, après, c'est moche, je le concède.
C'est pour ça que j'ai décidé de développer ma propre version de Rubular, en application bureau et plus par le navigateur, mais d'ici à ce que j'ai fini de développer cette appli, Rubular est incontournable.

Une fois de plus (on va croire que je ne pense qu'à ça...) : LES REGEX !!!
Chaque ligne a globalement le même schéma, tu peux facilement en déduire une regex qui te ressortira un couple de clés/valeurs/unités, que tu pourras ensuite interpréter de ton côté.

Bonsoir Leny,

Merci pour ton aide, je me doutais bien que la réponse à ma question serait du type regex, et j'arrive pas du tout à créer une expression régulière pour toute la phrase, et surtout qu'il prenne en charge les deux versions.

J'en suis à ma deuxième boite de doliprane...

Bonne soirée à toi, et merci encore.

Merci Leny pour ta réponse, c'est génial ce site, je ne connaissais pas, j'ai réussi à créer une regex compatible avec les deux versions de fichier en 10minutes.

Ceci dis je rencontre tout de même un soucis.

voici ma regex :

Distance totale *: (?P<distance>[0-9]+,[0-9]+) .+Durée totale *: (?P<Htotal>[0-9]*:)*(?P<Mtotal>[0-9]+):(?P<Stotal>[0-9]+).+d'enregistrement *: (?P<jour>\d{1,2})\/(?P<mois>\d{1,2})\/(?P<an>\d{4}) (?P<Heure>\d{1,2}:\d{1,2})

Si le trajet est inférieur à 1 minute la regex ne donne pas de correspondance, et si je mets le groupe Mtotal avec un étoile les minutes sont reconnues comme des heures