Bonsoir à tous,
Je préfère préciser que je débute en perl
Bref, voilà ce que j'aimerais faire :
J'ai un fichier de log construit à partir du programme mplayer qui identifie tout le contenu de mon dvd, le voici :
J'aimerai récupérer tout ce qui est en gras et assigner à chaque ligne trouvée, une variable ... en sachant que ces lignes ("ID_DVD_TITLE_X_LENGTH") sont variables selon les dvd.blablabla ...
ID_DVD_TITLES=6
ID_DVD_TITLE_1_CHAPTERS=13
ID_DVD_TITLE_1_ANGLES=1
ID_DVD_TITLE_2_CHAPTERS=1
ID_DVD_TITLE_2_ANGLES=1
ID_DVD_TITLE_3_CHAPTERS=1
ID_DVD_TITLE_3_ANGLES=1
ID_DVD_TITLE_4_CHAPTERS=1
ID_DVD_TITLE_4_ANGLES=1
ID_DVD_TITLE_5_CHAPTERS=1
ID_DVD_TITLE_5_ANGLES=1
ID_DVD_TITLE_6_CHAPTERS=1
ID_DVD_TITLE_6_ANGLES=1
ID_DVD_TITLE_1_LENGTH=5924.440
ID_DVD_TITLE_2_LENGTH=139.680
ID_DVD_TITLE_3_LENGTH=410.040
ID_DVD_TITLE_4_LENGTH=1275.040
ID_DVD_TITLE_5_LENGTH=192.840
ID_DVD_TITLE_6_LENGTH=287.040
ID_DVD_DISC_ID=16925C954A7891F7C607B78D51E4E2C8
Il y a 6 titres sur ce DVD.
ID_DVD_CURRENT_TITLE=1
Il y a 13 chapitres sur ce titre DVD.
Il y a 1 angles sur ce titre DVD.
etc etc ....
Par la suite, j'aimerai récupérer pour chaque variable, le chiffre après "ID_DVD_TITLE_X_LENGTH=" et le passer à la moulinette afin de transformer ces secondes (ce sont des secondes) en heures, minutes secondes ... mais ça ne sera pas un problème.
Et enfin, faire quelque chose de ce genre lors du lancement :
J'ai commencé à écrire ceci :Il y a "n" titres sur ce dvd :
- Titre 1 : 25 minutes
- Titre 2 : 1 heures 30 minutes
- Titre "n" : ........
Et ca marche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 open (fichier, 'info.log'); $i=0; while( $ligne = <fichier> ) { if ( $ligne =~ m/^ID_DVD_TITLE_\d+_LENGTH*/ ) { print $ligne; $i++; } } close fichier; print "nombre de titres sur le dvd : $i\n";
Par contre je suis complètement paumé et je ne sais pas trop quoi utiliser pour assigner chaque ligne trouvé a une variable ... (tableau de hash ?)../test2.pl
ID_DVD_TITLE_1_LENGTH=5924.440
ID_DVD_TITLE_2_LENGTH=139.680
ID_DVD_TITLE_3_LENGTH=410.040
ID_DVD_TITLE_4_LENGTH=1275.040
ID_DVD_TITLE_5_LENGTH=192.840
ID_DVD_TITLE_6_LENGTH=287.040
nombre de titres sur le dvd : 6
Note : Je n'utilise pas "use strict" et "use warnings" ... c'était pour un test rapide
Partager