#/usr/bin/perl
<<DOC; 
Votre Nom : Pantikina
Avril 2006
 usage : perl SORTIE_filtrage.pl arbo-fils
 Le programme prend en entrée le nom du répertoire contenant les fichiers
 ŕ traiter (ici, arbo-fils)
 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
#-----------------------------------------------------------
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 déclare la variable. Pour le moment le contenu de DUMPFULL correspond ŕ des fichiers séparés (du rép. arbo-fils)
my $DUMPFULL1="";
#----------------------------------------
my $output1="SORTIE_filtrage.xml";
if (!open (FILEOUT,">$output1")) { die "Pb a l'ouverture du fichier $output1"};
#----------------------------------------
&parcoursarborescencefichiers($rep);	#recurse!
#----------------------------------------
print FILEOUT "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n";
print FILEOUT "<PARCOURS>\n";
print FILEOUT "<NOM>Névéna Patikina</NOM>\n";
print FILEOUT "<FILTRAGE>".$DUMPFULL1."</FILTRAGE>\n";
print FILEOUT "</PARCOURS>\n";
close(FILEOUT);
exit;
#----------------------------------------------
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) {
        open(F,$file);
        while($ligne=<F>) {
	 	if ($ligne=~/<description>(.+)<\/description>/) {
			open (OUTTAG,">>tree.txt");
			$temp=$1;
			$temp=~s/&#38;#39;/\'/g;
			$temp=~s/&#38;#34;/"/g;
			$temp=~s/&#233;/ďż˝/g;
			$temp=~s/ĂŠ/ďż˝/g;
			$temp=~s/&#234;/ďż˝/g;
			$temp=~s/ĂŞ/ďż˝/g;
			$temp=~s/Ă¨/ďż˝/g;
			$temp=~s/ďż˝/ďż˝/g;
			$temp=~s/Ă§/ďż˝/g;
			$temp=~s/ďż˝/ďż˝/g;
			$temp=~s/Ă´/ďż˝/g;
#Segmentation du texte un mot par ligne
			#$temp=~s/([ ,\.\;:?!'(\)-])/\n$1\n/g; 
			$temp=~s/^\s$//g; 
		print $i++,"\n";
		print OUTTAG "$temp \n"; 		
		close (OUTTAG);
                   $DUMPFULL1.="\n<fichier>\n<nom>$file</nom>\n<contenu>$temp</contenu>\n</fichier>\n";
			}
	    }
        close(F);
	}
   }

}

