#/usr/bin/perl
<<DOC; 
Nom : VU Tai 
Année: 2009
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="";
#Fichier en sortie
my $output1="etiquetage-xml.xml";
if (!open (FILEOUT,">$output1")) { die "Pb a l'ouverture du fichier $output1"};
#----------------------------------------
&parcoursarborescencefichiers($rep);	#recurse!
#----------------------------------------
print FILEOUT "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<XML>\n<ETUDIANT>Tai, Noriko, Isiaka et Haruka</ETUDIANT>\n<ETIQUETAGE>\n$DUMPFULL1";
print FILEOUT "</ETIQUETAGE>\n</XML>\n";
close(FILEOUT);
exit;
# Parcours de l'arborescence :
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
		# il ne faut traiter que les fichiers XML
		if ($file=~/\.tmx/) {
			open(FILEINPUT, "$file");
			$i=1;
			$j=0;
			while ($ligne = <FILEINPUT>) {
			   
				 # Traitement des zones textuelles contenues à l'intérieur des balises seg.
				 if ($ligne =~/<seg>([^<]+)<\/seg>/){
						if ($ligne =~/en"><seg>([^<]+)<\/seg>/)
						{$j++;$l="eng";}
						else{$l="jap"}
						my$recup=$1;
						# Il faut résoudre les problèmes de codages
						if ($recup=~/^(.*)&lt;img width/) {$recup=$1};
						$recup=~s/&#38;#39;/'/g;
						$recup=~s/&#38;#34;/"/g;
						$recup=~s/&#232;/è/g;
						$recup=~s/&#233;/é/g;
						$recup=~s/&#234;/ê/g;
						$recup=~s/&amp;eacute;/é/g;
						$recup=~s/&amp;egrave;/è/g;
						$recup=~s/&amp;ecirc;/ê/g;
						$recup=~s/&amp;agrave;/à/g;
						$recup=~s/&amp;acirc;/â/g;
						$recup=~s/&amp;uuml;/ü/g;
									
					
				print "file : <$file> etiquetage n°$i\n";
				#Etiquetage
				open (FILE, ">tmp.txt");
				print FILE $recup;
				close (FILE);
				open (name, ">tmpfinal.xml");
				#entête de tmpfinal.xml, le nom de chaque document traité sera ainsi indiqué sur la sortie.
				print name "<partie numero=\"$j\" langue=\"$l\">\n<texte>$file</texte>\n";
				system ("perl ./treetagger-win32/cmd/tokenize.pl tmp.txt|./treetagger-win32/bin/tree-tagger.exe -token -lemma -no-unknown ./treetagger-win32/lib/english.par > texeetiquete.txt");
				system ("perl ./treetagger-win32/cmd/treetagger2xml2.pl texeetiquete.txt");
				system ("cat texeetiquete.txt.xml >> tmpfinal.xml");
				#ouvrir tmp.xml, le lire et concaténer chacun des lignes dans $DUMPFULL1
				open(FILEXML,"tmpfinal.xml");
				while (my $tt=<FILEXML>) {
				    $DUMPFULL1.="$tt"; # on concatène le contenu de chaque ligne du fichier 
				    # temporaire étiqueté obtenu dans chaque boucle
				}
				$i++; # on incrémente le compteur
			
			    
			}
		    
		}
        close (FILEINPUT);
		}
	}
    }
}
#----------------------------------------------
