PERL programmation

1207 Messages postés 18 Statut Membre -  
1207 Messages postés 18 Statut Membre -
Bonjour,
voila, j'ai un probleme avec un exercice de programmation, je suis sensée ecrire un programme "schtroumpfeur" de texte, c'est a dire qu'il va transformer le texte en discours de schtroumpf, simple au premier abord, mais pas tant que ça. un probleme se pose: comment faire pour travailler avec deux fichiers en lecture pour pouvoir verifier la categorie grammaticale d'un mot avant de le remplacer par "schtroumpf"? voila ce que j'ai fait pour l'instant...je voudrais comparer les mots insérés dans le tableau, avec le lexique ABU pour verifier que ce ne sont pas des verbes ou des prepositions, avant l'operation de remplacement et je n'ai jamais travaillé avec deux fichiers en lecture, alors je suis un peu perdue... s'il vous plait, aidez moi...a charge de revanche...
use strict;
use locale;

my $ligne;
my @t;
my @Ver;
my $i;
my $Ver;
my $article;
my $mot;

open ( IN, "<", "C:\\SL03OP1\\Programmes-Perl\\test.txt") or die "Impossible d'ouvrir le fichier!\n";
open (ENTREE,"<", "C:\\Users\\jc\\Documents\\lexiqueABU.txt") or die "impossible d'ouvrir ABU!\n";
open ( OUT, ">", "C:\\SL03OP1\\Programmes-Perl\\mots.txt") or die "Impossible de créer mots.txt!\n";

while ( $ligne = <IN>) {
chomp $ligne;
while ($ligne =~ /(\w+|['\(\)"\[-\],;.\?:!#\<\>\\\/])/g){
push (@t, $1);

}

}
$i=0;

while ($i <=$#t){
$t[$i]=~s/^(\w+)(em+ent|am+ent|age|ique|istes?)$/schtroumpf\2/;
print OUT $t[$i],"\n";

$i=$i+1;

if ($t[$i]=~/^(une?|les?|la|')$/) {
$t[$i+1]="schtroumpf","\n";

if ($t[$i]=~/'/) {
if ($t[$i-1]=~/l/) {
$t[$i]=~s/'/e/;
}
}

}

}

print "Allez regarder votre nouveau dossier dans C:\\SL03OP1\\Programmes-Perl\\mots.txt!";

close (IN);
close (OUT);
close (ENTREE);
A voir également:

2 réponses

Dikmas Messages postés 393 Statut Membre 63
 
Bonjour,

Je te conseil d'aller poster ta question dans la partie programmation de "comment ca marche".

Bon courage ^^
0
1207 Messages postés 18 Statut Membre
 
ok merci
0