DissociateErroneousFromDecoded.pl
1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/usr/bin/perl -w
use strict;
use warnings;
if (@ARGV < 3)
{
print "<rep super ctm> <ordre> <equilibre|backward|backward+1|forward>\n"
}
else
{
my $RepSuperCTM = $ARGV[0];
my $Ordre = $ARGV[1];
my $Sens = $ARGV[2];
if ($Sens ne "backward" && $Sens ne "forward" && $Sens ne "backward+1" && $Sens ne "equilibre")
{
die "mauvais parametre sens : <equilibre|backward|backward+1|forward>\n";
}
if ($Sens eq "backward" || $Sens eq "forward" || $Sens eq "backward+1")
{
$Ordre++;
}
opendir REP, $RepSuperCTM;
chdir ( $RepSuperCTM );
my @ListeFichiers = readdir (REP);
closedir REP;
my $Compteur=0;
foreach my $Fic (@ListeFichiers)
{
#print "ouverture de $Fic \n";
open (SUPERCTM, $Fic) or die "Ouverture de $Fic loupée !";
$Fic=~/(.*?)([0-9]+):([0-9]+).*?([MF]+)#([ST]+).*/;
my @FicCTM = <SUPERCTM>;
close SUPERCTM;
for (my $k=0; $k < @FicCTM; $k++)
{
my $LigneSuperCTM=$FicCTM[$k];
my $ComptMot=0;
print "$Compteur 0 UNK $Fic $LigneSuperCTM";
if ($Ordre > 1)
{
for (my $i=1; $i < $Ordre; $i++)
{
if ($Sens eq "equilibre" || $Sens eq "backward" || $Sens eq "backward+1")
{
$ComptMot++;
if ($k - $i >= 0)
{
my $Prec=$FicCTM[$k-$i];
print "$Compteur $ComptMot UNK $Fic $Prec";
}
}
if ($Sens eq "equilibre" || $Sens eq "forward" || ($Sens eq "backward+1" && $i == 1))
{
$ComptMot++;
if ($k + $i < @FicCTM)
{
my $Suiv=$FicCTM[$k+$i];
print "$Compteur $ComptMot UNK $Fic $Suiv";
}
}
}
}
$Compteur++;
}
}
}