#/usr/bin/perl
<<DOC; 
Votre Nom : 
JANVIER 2005
 usage : perl parcours-arborescence-fichiers repertoire-a-parcourir
 Le programme prend en entrée le nom du répertoire contenant les fichiers
 à traiter
 Le programme construit en sortie un fichier structuré contenant sur chaque
 ligne le nom du fichier et le résultat du filtrage :
<FICHIER><NOM>du fichier</NOM></FICHIER><CONTENU>du filtrage</CONTENU></FICHIER>
DOC


print "Quelle est la balise à filtrer?\n" ;
$exp=<STDIN> ; 
chomp $exp ;
#-----------------------------------------------------------
my $rep="$ARGV[0]";
# on s'assure que le nom du répertoire ne se termine pas par un "/"
$rep=~ s/[\/]$//;
# on initialise une variable contenant le flux de sortie 
my $DUMPFULL1="";
#----------------------------------------
my $output1="BaO1.xml";
if (!open (FILEOUT,">$output1")) { die "Pb a l'ouverture du fichier $output1"};
print FILEOUT "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n<?xml-stylesheet type=\"text/xsl\" href=\"Style.xsl\"?>\n";
print FILEOUT "<PARCOURS>\n<Nom>Aurélia Trinquier</Nom>\n";

#----------------------------------------
&parcoursarborescencefichiers($rep);	#recurse!
#----------------------------------------


#----------------------------------------------


sub parcoursarborescencefichiers {
    my $path = shift(@_);
    opendir(DIR, $path) or die "can't open $path: $!\n";
    my @files = readdir(DIR);
    closedir(DIR);
    foreach my $file (@files) {
	next if $file =~ /^\.\.?$/;
	$file = $path."/".$file;
	if (-d $file) {
	    &parcoursarborescencefichiers($file);	#recurse!
	}
	if (-f $file) {
#       TRAITEMENT à réaliser sur chaque fichier
#       Insérer ici votre code (le filtreur)

open (FILEINPUT,"$file") ;
print FILEOUT "<FICHIER>\n<NOM>$file</NOM>\n";
while ($ligne = <FILEINPUT>){
	if ($ligne=~/<$exp>(.*)<\/$exp>/) {
            	    $ligne=$1;

# Rectification des problèmes de codage
       $ligne=~s/(&#38;#39;)/\'/g;
       $ligne=~s/(&#38;#34;)/\"/g;    
       $ligne=~s/à©/é/g;
       $ligne=~s/Ã©/é/g;       
       $ligne=~s/Ãª/ê/g;
       $ligne=~s/Ã¨/è/g;
       $ligne=~s/Ã/à/g;
       $ligne=~s/Ã§/ç/g;
       $ligne=~s/à§/ç/g;
       $ligne=~s/à´/ô/g;    
       $ligne=~s/(&#233;)/é/g;
       $ligne=~s/(&#234;)/ê/g;    

print FILEOUT "<FILTRAGE>$ligne</FILTRAGE>\n";

	 }
}

print FILEOUT "</FICHIER>\n" ;
close (FILEINPUT);
	}
    }
}

print FILEOUT "</PARCOURS>\n";
close(FILEOUT);
exit;
