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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| #!/usr/bin/perl
use strict;
use warnings;
use utf8;
ActiverAccents();
#
# Boucle principale
#
my @Files = GetFilesList ("E:\\_DEV\\_Essais");
foreach my $File (@Files) {
print "===>$File\n";
open my $FIC, "<:utf8", $File or die "ouverture impossible de $File $!";
while (<$FIC>) {
my $ligne=$_;
print "$ligne";
}
print "\n\n";
}
sub GetFilesList
{
my $Path = $_[0];
my $FileFound;
my @FilesList=();
# Lecture de la liste des fichiers
opendir (my $FhRep, $Path)
or die "Impossible d'ouvrir le repertoire $Path\n";
my @Contenu = grep { !/^\.\.?$/ } readdir($FhRep);
closedir ($FhRep);
foreach my $FileFound (@Contenu) {
# Traitement des fichiers
if ( -f "$Path/$FileFound") {
push ( @FilesList, "$Path/$FileFound" );
}
# Traitement des repertoires
elsif ( -d "$Path/$FileFound") {
# Boucle pour lancer la recherche en mode recursif
push (@FilesList, GetFilesList("$Path/$FileFound") );
}
}
return @FilesList;
}
#==============================================================
# Pour avoir les accents sur la console DOS
# http://perl.developpez.com/faq/perl/?page=Terminal#AccentsDOS
#==============================================================
sub ActiverAccents {
my $encodage;
# Windows
if ( lc($^O ) eq 'mswin32') {
eval {
my ($codepage) = ( `chcp` =~ m/:\s+(\d+)/ );
$encodage = "cp$codepage";
foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) {
binmode $h, ":encoding($encodage)";
}
};
}
else {
$encodage = `locale charmap`;
eval {
foreach my $h ( \*STDOUT, \*STDERR, \*STDIN, ) {
binmode $h, ":encoding($encodage)";
}
};
}
return $encodage;
}
#Sinon :
#ü \x81 à \x85 è \x8A
#é \x82 ç \x87 ï \x8B
#â \x83 ê \x88 î \x8C
#ä \x84 ë \x89 |
Partager