et que fait
Code:
1
2
3
4
5
6
7
8 if(-e $fichier){ my @file_stat = stat($fichier); my $mtime = $file_stat[9]; map {print "$_, \t";} @file_stat; } else{ die "LE FICHIER N'EXISTE PAS !!!!"; }
Version imprimable
et que fait
Code:
1
2
3
4
5
6
7
8 if(-e $fichier){ my @file_stat = stat($fichier); my $mtime = $file_stat[9]; map {print "$_, \t";} @file_stat; } else{ die "LE FICHIER N'EXISTE PAS !!!!"; }
ça donne çaCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #!/usr/bin/perl use strict; use warnings; use POSIX qw(strftime); use POSIX qw(localtime); my $fichier = "D:\\Documents and Settings\\ROUSSELA\\Desktop\\testi.pl"; my ($repertoire,$nom_fichier) = $fichier =~ /(.+[\/\\])([^\/\\]+)$/; my $chemin = "D:\\Documents and Settings\\ROUSSELA\\Desktop\\infos.txt"; my @file_stat = stat($fichier); map {print "$_, \t";} @file_stat; my $mtime = $file_stat[9]; print @file_stat; print $mtime; #open (FH, ">>$chemin") || die $!; #print FH "Date|Caisse|Nom fichier|Datefichier|Heurefichier|\n"; #print FH "$fichier\n"; #print FH "$mtime"; #close (FH); if(-e $fichier){ my @file_stat = stat($fichier); my $mtime = $file_stat[9]; map {print "$_, \t";} @file_stat; } else{ die "LE FICHIER N'EXISTE PAS !!!!"; }
Z:\>perl "D:\Documents and Settings\ROUSSELA\Desktop\essai1.pl"
3, 0, 33206, 1, 0, 0, 3, 279, 1218452615,
1217929317, 1218452615, , , 30332061003279121845261512179293
17121845261512179293173, 0, 33206, 1, 0, 0, 3,
279, 1218452615, 1217929317, 1218452615, , ,
donc c'est mieux :)
ça donne ça dans mon fichier platCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #!/usr/bin/perl use strict; use warnings; use POSIX qw(strftime); use POSIX qw(localtime); my $fichier = "D:\\Documents and Settings\\ROUSSELA\\Desktop\\testi.pl"; my ($repertoire,$nom_fichier) = $fichier =~ /(.+[\/\\])([^\/\\]+)$/; my $chemin = "D:\\Documents and Settings\\ROUSSELA\\Desktop\\infos.txt"; my @file_stat = stat($fichier); map {print "$_, \t";} @file_stat; my $mtime = $file_stat[9]; print @file_stat; print $mtime; my $toto= localtime($mtime); open (FH, ">>$chemin") || die $!; print FH "Date|Caisse|Nom fichier|Datefichier|Heurefichier|\n"; print FH "$fichier\n"; print FH "$mtime\n"; print FH "$toto"; close (FH); if(-e $fichier){ my @file_stat = stat($fichier); my $mtime = $file_stat[9]; map {print "$_, \t";} @file_stat; } else{ die "LE FICHIER N'EXISTE PAS !!!!"; }
Date|Caisse|Nom fichier|Datefichier|Heurefichier|
D:\Documents and Settings\ROUSSELA\Desktop\testi.pl
1217929317
Tue Aug 5 11:41:57 2008
merci merci, smak smak :D
Tant mieux que tu aies réussi ... quel était exactement le problème?
Pour ton expression régulière
A ta place j'écriraisCode:$fichier =~ /(.+[\/\\])([^\/\\]+)$/;
ouCode:$fichier =~ '^(.*)\+(\w+\.\w+)$';
$1 = tout ce qui précèdeCode:$fichier =~ m(^(.*)\+(\w+\.\w+)$);
\+ = séparé par un ou plusieurs backslash
$2 = lettre.lettre (pour fichier.extension)
Le fait d'utiliser des ' ' ou des ( ) fait que tu ne dois plus écrire de backslash devant tes slash et backslash.
Enfin, c'est une question de goûts.
alors j'ai vu 2 erreurs de ma part
l'utilisation du use FILE::stat
et surtout j'allais chercher le fichier au mauvais endroit donc il ne le trouvait pas
donc pas d'infos
maintenant j'ai ma date en sortie: tue aug 5 11:47:23 2008
je voudrais faire une sorte de "explode" comme en php et réagencer ma date ainsi
05/08/2008
et l'heure à part
11:47:23
on utilise un split un substr?
j'ai fait un split et ça marche
mais je vois pas comment je transformer
aug 5 2008
en 05/08/2008
ne faut il pas remplacer les espace par des /
en fait je suis biiiiiiiip
j'ai pu faire de Aug 5 2008 un passage en 5 Aug 2008
et j'ai même mis mes / (vives les variables!)
des fois je pose des questions illogiques au possible
Il existe probablement un module sur le CPAN.Citation:
mais je vois pas comment je transformer
aug 5 2008
en 05/08/2008
Tant mieux donc tu as maintenant 5/Aug/2008?Citation:
j'ai pu faire de Aug 5 2008 un passage en 5 Aug 2008
et j'ai même mis mes / (vives les variables!)
Si tu ne trouves pas un module approprié sur le CPAN, tu peux toujours utiliser
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #!/usr/bin/perl use strict; my $date = 'aug 5 2008'; my %h_correspond = ( aug => '08', ); if ($date =~ /(\w+) (\d+) (\d+)/){ my $date_modif = join ('/', (sprintf("%02d", $2), $h_correspond{$1}, $3)); } # => 05/08/2008
Il serait nettement plus simple d'utiliser la sortie type tableau de localtime plutôt que de parser sa sortie scalaire (laquelle est destinée à être utilisée telle quelle quand on n'a pas de grosses exigences sur le format de sa date). Ou même utiliser directement strftime() sur la sortie de localtime, ça serait nettement plus propre :
--Code:
1
2
3 my @time_stats = localtime($mtime); use POSIX qw(strftime); print strftime( "%d/%m/%y %T" ,@time_stats);
Jedaï
merci Jedaï c'est beaucoup mieux