#/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
#-----------------------------------------------------------
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-etiquetage-cordial.txt";
if (!open (FILEOUT,">$output1")) { die "Pb a l'ouverture du fichier $output1"};
#----------------------------------------
&parcoursarborescencefichiers($rep);	#recurse!
#----------------------------------------
print FILEOUT "$DUMPFULL1";
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=~/0,2-3210,1-0,0\.xml/){
				print $file,"\n"; # imprimer le nom de fichier pour être sur du fichier à traiter
				open(FILEINPUT,"$file");  # ouverture  en lecture du fichier
				$i=1; # Nous avons inséré un compteur afin que notre programme puisse lire chacune des lignes qui nous interessent 
								$recup="";
				
				# Etape 1 : extraire le texte du fichier FILEINPUT -> FILETT
				while ($ligne = <FILEINPUT>){   # boucle while. Tant que je peux lire cette ligne exécute ....
					if (($ligne=~/<description>([^<]+)<\/description>/) || ($ligne=~/<title>([^<]+)<\/title>/)){ # Si la recherche de la ligne est possible, 
						my $recup=$1;
						$recup=~s/&#38;#39;/\'/g;
						$recup=~s/&#38;#34;/\"/g;
						$recup=~s/&#233;/é/g;
						$recup=~s/&#234;/ê/g;
						$recup=~s/Ã©/é/g;
						$recup=~s/Ã¯/ï/g;
						$recup=~s/Ã/à/g;
						$recup=~s/Ã¨/è/g;
						$recup=~s/Ãª/ê/g;
						$recup=~s/Ã§/ç/g;
						$recup=~s/àª/ê/g;
						$recup=~s/à®/ï/g;
						$recup=~s/à¨/è/g;
						$recup=~s/à§/ç/g;
						$recup=~s/à«/ë/g;
						$recup=~s/à´/ô/g;
						$recup=~s/à»/û/g;
						$recup=~s/&amp;eacute;/é/g;
						$recup=~s/&amp;egrave;/è/g;
						$recup=~s/&amp;ecirc;/ê/g;
						$recup=~s/&amp;agrave;/à/g;
						$recup=~s/&amp;euml;/ë/g;
						$recup=~s/à¹/ù/g;
						$recup=~s/Toute l'actualit.* au moment de la connexion//g;
						$recup=~s/Lisez l'int.*gralit.* de l'article pour plus d'information.//g;
						$recup=~s/Le Monde.fr : International//g;
						$recup=~s/International - Le Monde.fr//g;
						$recup=~s/&lt;img .*$//g;
						$recup=~s/<img src=.*$//g;
						$recup=~s/&amp;link=http.*$//g;
						$i++;
						$DUMPFULL1.=$recup."\n";
						}		
					}
				}	
				close(FILEINPUT);
			}
		}
    }

#----------------------------------------------
