
<<DOC;
Fait par : Maria DOGANOVA & Nadia MAKOUAR
FEVRIER 2008
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 $dir="$ARGV[0]"; # lecture du répértoire directement

$dir=~s/[\/]$//; # vérification que le nom du répértoire ne se termine pas par un "/"

#========================================================

# création d'un tableau de hachage, qui donne automatiquement pour chaque entrée une sortie en fichier xml
my %rubric_file = (	"0,2-3208,1-0,0" => "A_la_Une.txt",
					"0,2-3232,1-0,0" => "Opinions.txt",
					"0,2-3210,1-0,0" => "International.txt",
					"0,2-829254,1-0,0" => "Les_élections_américaines.txt",
					"0,2-3214,1-0,0" => "Europe.txt",
					"0,2-3224,1-0,0" => "Société.txt",
					"0,2-3234,1-0,0" => "Economie.txt",
					"0,2-3236,1-0,0" => "Médias.txt",
					"0,2-3238,1-0,0" => "Rendez-vous.txt",
					"0,2-3242,1-0,0" => "Sports.txt",
					"0,2-3244,1-0,0" => "Environnement_Sciences.txt",
					"0,2-3246,1-0,0" => "Culture.txt",
					"0,2-3476,1-0,0" => "Cinéma.txt",
					"0,2-3546,1-0,0" => "Voyages.txt",
					"0,2-3260,1-0,0" => "Livres.txt",
					"0,2-3404,1-0,0" => "Examens.txt",
					"0,57-0,64-823353,0" => "Politique.txt",
					"0,57-0,64-987718,0" => "Municipales_et_Cantonales.txt"
					);
@liste = keys(%rubric_file);
#===============

# appel de la fonction paf qui  Parcours  l'Arborescence des Fils et qui concatene dans les fichiers de sortie
	&paf($dir);    

	my $rep= "xml1";
	opendir(DIR,$rep) or die "blem";
	@files_n=readdir(DIR);
	closedir (DIR);
	# open(FILE,">ttt/$nomfichier");
	 
	foreach $nomfichier (@files_n) {				
			if ($nomfichier =~/\.txt$/i){
					system ("perl tt/tokenise-fr.pl xml1/$nomfichier | tt/bin/tree-tagger.exe tt/lib/french.par -lemma -token -sgml > ttt/$nomfichier ");
					system ("perl tt/treetagger2xml.pl ttt/$nomfichier ");
					# close FILE;
			}
	}
	
	
	
# fin du programme	
exit;
#----------------- procedures----------------------------------------	
	
#  procedure de parcours

sub paf	{						# déclaration de la fonction paf et on extrait les fichiers
	
	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 =~ /^\.\.?$/;
		$files = $path."/".$file;
		if (-d $files) {
			&paf($files);	
		}
			if (-f $files){  
				if ($file=~/(.*).xml/){					
					open(FILEINPUT,"$files");
					$cle=$rubric_file {$1};
					open(FILEOUTPUT,">>xml1/$cle");				
				    while ($ligne=<FILEINPUT>){	
							$ligne=&net_entites($1);									
							if ($ligne=~/<description>([^<]+)<\/description>\n/){
								print FILEOUTPUT "$1\n"
								}
					}
					
					close FILEINPUT;
					close FILEOUTPUT;
				
				}
				
			}	
	 }
		
	sub net_entites{
				$ligne=~s/&#38;#39;/\'/g;
				$ligne=~s/&#38;#34;/\"/g;
				$ligne=~s/&#233;/é/g;
				$ligne=~s/&#234;/è/g;
				$ligne=~s/&#234;/ê/g;
				$ligne=~s/&#38;nbsp//g;
				return $ligne;
	}
}

	
		
#----------------------------------------------
