#!/usr/bin/perl
use locale;
open(FILEOUT, ">Resultat5-1.html"); 
#on ouvre le fichier dans lequel on va écrire
print "Sur quel fichier voulez vous travailler ?\n";
my  $fichierdetravail = <STDIN>; 
#on met dans la variable $mot ce que l'utilisateur tape au clavier
chomp($fichierdetravail);
print "Sur quel mot voulez vous travailler ?\n";
my  $mot = <STDIN>; 
#on met dans la variable $mot ce que l'utilisateur tape au clavier
chomp($mot);
print FILEOUT "<html><head></head><body bgcolor=\"purple\">\n";
print FILEOUT "<p align=\"center\"><b> Concordancé de \"$mot\" 
dans le fichier \"$fichierdetravail\" <br> 
construite avec le programme \"$0\"</b></p>\n"; 
# $0 fait référence  au programme qui est en train de s'exécuter
print FILEOUT "<table bgcolor=\"powderblue\" 
align=\"center\" border=\"2\">\n";
print FILEOUT "<tr><td align=\"right\"><b>Contexte gauche<b></td>
<td align=\"center\"><b>Pole<b></td><td align=\"left\">
<b>Contexte droit<b></td></tr>";
print "Combien voulez vous de mots?\n";
my  $nombremots = <STDIN>; 
#on met dans la variable $nombremots ce que l'utilisateur tape au clavier
# 3 - Programme pour la concordance
open (FILE, "$fichierdetravail");
while (my $ligne=<FILE>) {
	$ligne=~s/\/\w+ / /g; #nettoie
	$ligne=~s/\d+/ /g; #nettoie
	$ligne=~s/<\w+>/ /g; #nettoie
	while ($ligne=~/$mot\S*/g) { 
	# 'g' est une option de la recherche 
	#qui permet d'aller chercher toutes les occurrences 
	#et \b permet de dire : 'début de mot' et 'fin de mot'
		my $contextegauche=$`;
		my $pole=$&;
		my $contextedroit=$';
		my @droit=split(/[\W+]/, $contextedroit);
		my @gauche=split(/[\W+]/, $contextegauche);
		my $g=""; # initialisation à vide
		my $d=""; # initialisation à vide
		for ($i=$#gauche-$nombremots+1; $i<=$#gauche; $i++) {
			next if ($i<0);
			$g.="$gauche[$i]\t";
					}
		$i=0;
		for ($i=0; $i<=$nombremots+1; $i++){
			$d.="$droit[$i]\t";
		}		
		print FILEOUT "<tr><td align=\"right\"><i>$g&nbsp;<i></td>
		<td align=\"center\"><blink>$pole</blink>
		</td><td align=\"left\"><i>$d&nbsp;<i></td></tr>";
		}# fin de while
}# fin de while
print FILEOUT "</table>\n</body>\n</html>\n"; 
# on ferme le tableau, le body et le document html
close(FILE);
close(FILEOUT);# on ferme le fichier en sortie	