#!/usr/bin/perl -s

###############################################
# Programme de conversion de catgories :
#convertit dicostd en dicojys (codage multiplicatif des donnes)
###############################################

print STDERR ("INFO : Dbut du traitement convertjys\n");

open(SOURCE,"$ARGV[0]") || die("Impossible d'ouvrir le fichier $ARGV[0]\n");
print STDERR ("INFO : Fichier dicostd.txt ouvert\n");

open (CONVERT,"convjys.txt") || die ("Impossible d'ouvrir le fichier convjys.txt\n");
print STDERR ("INFO : Fichier ressources convjys.txt ouvert\n");

open(CIBLE,">$ARGV[1]") || die("Impossible d'ouvrir le fichier $ARGV[1]\n");
print STDERR ("INFO : Fichier dicojys.txt ouvert\n");

open(ERROR,">>error.txt") || die("Impossible d'ouvrir le fichier error.txt\n");
print STDERR ("INFO : Fichier error.txt ouvert\n");


# Initialisation du fichier d'erreur
print ERROR ("----------------------------------\n");
print ERROR ("Lignes non traites par convertjys\n\n");
# Fin d'initialisation du fichier d'erreur

#chargement dans une table des catgories et de leurs correspondances
$infotags = <CONVERT>;
chop($infotags);
chomp($infotags);
%tags;
while ($infotags ne "") {
	@donneestags = split(/;/,$infotags);
	$tags{$donneestags[0]} = $donneestags[1];
	$infotags = <CONVERT>;	
}

while (($holder,$record) = each(%tags)) {
	print ("$holder;$record\n");
}

print STDERR ("INFO : Fin du chargement des catgories\n");
#fin du chargement des catgories et de leurs correspondances

$motstraites = 0;
$motsnontraites = 0;

$ligne = <SOURCE>;
while ($ligne ne "") {

	$motstraites++;

	print STDERR ("INFO : Lignes traites : $motstraites\r");

	@donnees = split(/\t/,$ligne);

	$entree = $donnees[0];
	$lemme = $donnees[1];
	$info = $donnees[2];
	chomp($information);
	$normalisation = $donnees[3];
	chomp($normalisation);


	# Codage des catgories

	#Fin du codage des catgories

	if ($tags{$info} ne "") {
		#$codestags = $tags{$info};
		#@codetag = split(/\+/,$codestags);
		#$tailleCodetag = @codetag;
		#for ($k=0 ; $k<$tailleCodetag ; $k++) {
			print CIBLE ("$entree\t1\t$lemme\t$tags{$info}\t$normalisation\t\n");
		#}
	}
	else {
		 print ERROR ("$entree\t$lemme\t$info\t$normalisation\t\n");
		$motsnontraites++;
	}

	$ligne = <SOURCE>;
}
print STDERR ("\nINFO : Entres non prises en compte : $motsnontraites\n");
print STDERR ("INFO : Traitement convertjys termin\n");
