#==========================================================================================
# Usage: perl Trouve_Cordial.pl <fichier étiqueté> <fichier des patrons> > fichier resultat
#===========================================================================================

#!/usr/bin/perl -w
use warnings;
use diagnostics;
use strict;
use locale;


my @liste;
my @termes;
my @patrons;
my $chpatrons;
my $sptrc;
my $i=0;
#===================================
# Lecture des termes et des patrons
#===================================

open(FIC,$ARGV[0]);
while (<FIC>)
{

@liste=split('\t',$_);

if ( defined($liste[2])&& defined($liste[0]))
{
$termes[$i]=$liste[0];
$liste[2]=~ s/[\r\n]//g;
$patrons[$i]=$liste[2];


}
else
{
$termes[$i]="vide...!";

$patrons[$i]="vide...!";

}
$i++;
}
$chpatrons=join(" ",@patrons);
 
#print "choisis un nom de fichier pour contenir les termes extraits\n";
$i=0;

close(FIC);
#===================================
# Lecture du fichier  des patrons
#===================================
open(FIC,$ARGV[1]);

while (defined($sptrc=<FIC>))
{
 $sptrc=~ s/\r//g;

 $sptrc=~ s/\n//g;

 cherche_patrons();

}

close(FIC);


#====================================

sub cherche_patrons

{
my $base=0;
my $ch=$chpatrons;

my $t;
my $ii=0;
my @chu;
my $d=nb_terme($sptrc);

my $s=0;


$chpatrons=~ s/$sptrc/1 $sptrc/g;
 


my @nptron=split(' ',$chpatrons);

while ($ii< $#nptron)
{
if ($nptron[$ii] eq "1")
{

 $ch= join(" ", @termes[$ii-$s..$ii-$s+$d-1]);
 if ($ch !~/[^a-zA-Z0-9çàáèéùîïæœëêôÿŸÈÉÊÇÎÏâÂÙŒÛûúÚ_\-\s]/)
 {
    print $ch ." \n";
 }
$s++;
}
$ii++;
}


}



#===================================

sub nb_terme
{ my $chen=$_[0];

  my $nb=1;
  while ($chen=~ m/ /g) 
{ 
$nb++;
}
  return $nb;
}
  

