use strict;
print "\n\n\n\n";
open(fREAD,$ARGV[0]) || die;
while(<fREAD>) { my $ligne = $_;
my @Ligne = split(/[,|.|;
]/,$ligne);
foreach my $mot (@Ligne) { $mot =~ s/^ //;
print $mot . "\n";
if($ligne =~ m/$mot\s*,/) { sleep 1;
} else { sleep 2;
}
}
if(scalar(@Ligne) == 0) { print "\n";
}
print "\n";
} close fREAD;
print "\n\n\n\n";
sub retournementPoetivites { my $poeme = $_[0];
foreach my $mot (keys(%{$Recueil{$poeme}{"Mots"}})) { my $poetivite = 0;
my $nbpoetivites = scalar(@{$Recueil{$poeme}{"Mots"}{$mot}});
while( scalar(@{$Recueil{$poeme}{"Mots"}{$mot}}) > 0) { $poetivite += shift(@{$Recueil{$poeme}{"Mots"}{$mot}});
} $poetivite = int($poetivite / $nbpoetivites);
$Recueil{$poeme}{"Mots"}{$mot} = $poetivite;
push(@{$Poetivites{$poeme}{$poetivite}},$mot);
push(@{$Poetivites{"recueil"}{$poetivite}},$mot);
} } sub nettoieMot { my $mot = $_[0];
while($mot =~ m/(\.|,)$/) {chop $mot;
}
return $mot;
} sub poedilation { my $poeme = $_[0];
my $degre = $_[1];
open fPOE, ">" . $poeme . ".txt" or die "Impossible d'ouvrir le fichier $poeme.txt !\n";
open fPTE, ">" . $poeme . "_pte.txt" or die "Impossible d'ouvrir le fichier $poeme.txt !\n";
foreach my $ligne (sort( {$a <=> $b} keys(%{$SampledRecueil{$poeme}}))) {
if(scalar(@{$SampledRecueil{$poeme}{$ligne}{"mots"}}) == 0) { print fPOE "\n";
next;
}
if(scalar(@{$SampledRecueil{$poeme}{$ligne}{"mots"}}) == 1) { print fPOE ${$SampledRecueil{$poeme}{$ligne}{"mots"}}[0] . "\n";
print fPTE ${$SampledRecueil{$poeme}{$ligne}{"poetivites"}}[0] . "\n";
next;
}
my @finalLine;
my @finalPoe;
for (my $i = 0 ;
$i < $degre ;
$i++) {
my @newLine;
my @newPoetivites;
while(scalar(@{$SampledRecueil{$poeme}{$ligne}{"mots"}}) > 1) {
my $motAvant = shift(@{$SampledRecueil{$poeme}{$ligne}{"mots"}});
my $poeAvant = shift(@{$SampledRecueil{$poeme}{$ligne}{"poetivites"}});
my $interpol = int(($poeAvant + ${$SampledRecueil{$poeme}{$ligne}{"poetivites"}}[0]) / 2);
if(exists($Poetivites{$poeme}{$interpol})) {
push(@newLine,${$Poetivites{$poeme}{$interpol}}[int(rand(scalar(@{$Poetivites{$poeme}{$interpol}})))]);
push(@newPoetivites,$interpol);
next;
}
if(exists($Poetivites{$poeme}{$interpol-1})) {
push(@newLine,${$Poetivites{$poeme}{$interpol-1}}[int(rand(scalar(@{$Poetivites{$poeme}{$interpol-1}})))]);
push(@newPoetivites,$interpol-1);
next;
}
if(exists($Poetivites{$poeme}{$interpol+1})) {
push(@newLine,${$Poetivites{$poeme}{$interpol+1}}[int(rand(scalar(@{$Poetivites{$poeme}{$interpol+1}})))]);
push(@newPoetivites,$interpol+1);
next;
}
my @poetivikeys = sort( {$a <=> $b} keys(%{$Poetivites{"recueil"}}));
my $avant = $poetivikeys[0];
my $apres = 0;
foreach my $poetivitest (@poetivikeys) {
next if($poetivitest == $avant);
if($poetivitest > $interpol) { $apres = $poetivitest;
last;
} $avant = $poetivitest;
}
if(($interpol - $avant) > ($apres - $interpol)) { push(@newLine,${$Poetivites{"recueil"}{$apres}}[int(rand(scalar(@{$Poetivites{"recueil"}{$apres}})))]);
push(@newPoetivites,$apres);
} else { push(@newLine,${$Poetivites{"recueil"}{$avant}}[int(rand(scalar(@{$Poetivites{"recueil"}{$avant}})))]);
push(@newPoetivites,$avant);
}
}
if(scalar(@{$SampledRecueil{$poeme}{$ligne}{"mots"}}) > 0) { push(@newLine,shift(@{$SampledRecueil{$poeme}{$ligne}{"mots"}}));
push(@newPoetivites,shift(@{$SampledRecueil{$poeme}{$ligne}{"poetivites"}}));
} @{$SampledRecueil{$poeme}{$ligne}{"mots"}} = @newLine;
@finalLine = @newLine;
@{$SampledRecueil{$poeme}{$ligne}{"poetivites"}} = @newPoetivites;
@finalPoe = @newPoetivites;
}
foreach my $motfinal (@finalLine) { print fPOE $motfinal . " ";
} foreach my $poefinale (@finalPoe) { print fPTE $poefinale . " ";
} print fPOE "\n";
print fPTE "\n";
}
print "\n\npoedilation OK ! (voir " . $poeme . ".txt, " . $poeme . "_pte.txt pour le spectre)\n";
close fPOE;
close fPTE;
} sub retournementPoetivites { my $poeme = $_[0];
foreach my $mot (keys(%{$Recueil{$poeme}{"Mots"}})) { my $poetivite = 0;
my $nbpoetivites = scalar(@{$Recueil{$poeme}{"Mots"}{$mot}});
while( scalar(@{$Recueil{$poeme}{"Mots"}{$mot}}) > 0) { $poetivite += shift(@{$Recueil{$poeme}{"Mots"}{$mot}});
} $poetivite = int($poetivite / $nbpoetivites);
$Recueil{$poeme}{"Mots"}{$mot} = $poetivite;
push(@{$Poetivites{$poeme}{$poetivite}},$mot);
push(@{$Poetivites{"recueil"}{$poetivite}},$mot);
} } sub nettoieMot { my $mot = $_[0];
while($mot =~ m/(\.|,)$/) {chop $mot;
}
return $mot;
} sub retournementPoetivites { my $poeme = $_[0];
foreach my $mot (keys(%{$Recueil{$poeme}{"Mots"}})) { my $poetivite = 0;
my $nbpoetivites = scalar(@{$Recueil{$poeme}{"Mots"}{$mot}});
while( scalar(@{$Recueil{$poeme}{"Mots"}{$mot}}) > 0) { $poetivite += shift(@{$Recueil{$poeme}{"Mots"}{$mot}});
} $poetivite = int($poetivite / $nbpoetivites);
$Recueil{$poeme}{"Mots"}{$mot} = $poetivite;
push(@{$Poetivites{$poeme}{$poetivite}},$mot);
push(@{$Poetivites{"recueil"}{$poetivite}},$mot);
} } sub nettoieMot { my $mot = $_[0];
while($mot =~ m/(\.|,)$/) {chop $mot;
}
return $mot;
} 