#/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
#-----------------------------------------------------------
$ARGV[0]="2006";
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="SORTIE.xml";
if (!open (FILEOUT,">$output1")) { die "Pb a l'ouverture du fichier $output1"};


#----------------------------------------
#récupérer la date du jour sous forme de jj/mm/annee
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
my $date_du_jour =  $mday."/".($mon+1)."/".(1900+$year);


#--------------------------------------
&parcoursarborescencefichiers($rep);	#recurse!

#----------------------------------------
print FILEOUT "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n";
print FILEOUT "<?xml:stylesheet type=\"text\/xsl\" href=\"style.xsl\"?>\n"; 
print FILEOUT "<PARCOURS>\n";
print FILEOUT "<NOM> Nacer(Massinissa) HAMRI </NOM>\n";
print FILEOUT "<DATE> ".$date_du_jour." </DATE>\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) {
		if (($file=~/AFP-stories\.xml/) || ($file=~/0,2-.*\.xml/)) {
#       TRAITEMENT à réaliser sur chaque fichier
			open(FILEINPUT,"$file");
			$fichier  = "<FICHIER>";
			$nom = "$file";
			$fichier .= "<NOM>".$nom."</NOM>";
			$contenu = "";
			while ($ligne = <FILEINPUT>){
				if ($ligne=~/<description>(.*)<\/description>/) { #$ligne =~ s/<description>/ /g;
					#$ligne =~ s/<\/description>/ /g;
					$l=$ligne;
					#************************
					$ligne = $1;
					$ligne=~ s/&#38;#39;/\'/g; #  &#38;#39; = apostrophe#39;
					$ligne=~ s/&#38;#34;/"/g; #  &#38;#34; = guillemets ouvrants ou fermants.
					$ligne=~ s/&#233;/é/g; #   &#233; = é
					$ligne=~ s/Ã©/é/g;
					$ligne=~ s/&#234;/ê/g; #  &#234; = ê= accent circonflexe
					$ligne=~ s/Ãª/ê/g;  #Ãª ê= accent circonflexe
					$ligne=~ s/Ã¨/è/g;
					$ligne=~ s/Ã/à/g;
					$ligne=~ s/Ã§/ç/g;
					$ligne=~ s/à§/ç/g;
					$ligne=~ s/Ã´/ô/g;
					$ligne=~ s/"//g;
					$contenu .="<CONTENU>".$ligne."</CONTENU>\n";		 
		           # print $ligne;
		          }
			}	
			close(FILEINPUT) ;
			$fichier .= $contenu;
			$fichier .= "</FICHIER>\n";
            print $fichier;
			$DUMPFULL1 .= $fichier;
			#       Insérer ici votre code (le filtreur)
			print $i++,"\n";
		}
	}
    }
}
#-----