[PERL]Fichier annexe...

Résolu/Fermé
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 24 oct. 2005 à 14:10
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 25 oct. 2005 à 13:55
Re bonjour, et oui aujourd'hui je fais du PERL et c'est un peu la galère car j'en fait pas souvent... xD

bref, ca fait ma pause repas que je galère a trouver comment que faire :P
je m'explique :
#J'ai un fichier A.txt qui contient du texte par exemple :
A.txt:
" Bonjour A va bien il discute avec B.Mais monsieur A n'aime pas les artichauds, il préfère les radis gris comme madame B. Alors que monsieur D lui mange des huitres..."

#un fichier B qui fait les correspondances :
B.txt
"A Michael Dudikoff
B Kurtis jackson
C San De
D Taylor Bow"


Et donc vous devinez, je souhaite ouvrir mon fichier B.txt quand je tombe sur une occurence connu dans le fichier A.txt, afin d'avoir en résultat
" Bonjour Michael Dudikoff va bien il discute avec Kurtis jackson.Mais monsieur Michael Dudikoff n'aime pas les artichauds, il préfère les radis gris comme madame Kurtis jackson. Alors que monsieur Taylor Bow lui mange des huitres..."

voilà,pour le moment je teste et je tourne pas mal en rond, si quelqu'un a une idée... Merci

Zep3k!GnO
-->hi i hi o on va pas au boulot :P
A voir également:

3 réponses

crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 506
24 oct. 2005 à 20:16
salut,
Tu lis le fichier qui contient les substitutions et t'en fait un tableau associatif
ensuite tu lis le fichier texte, et pour chaque ligne tu fais une boucle de
substition en utilisant le tableau associatif précédement créé.
Enfin quand je dis 'tu', je penses 'ton programme' ;-)

Attention A,B,C,D ne sont pas assez discriminant et il se peut que tu obtiennes
des substitutions non voulues, exemple :
"A la fête de A, B a rencontré C."
Le premier 'A' serait remplacé alors qu'il faut pas...
A+, crabs
0
hssissen Messages postés 844 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 9 janvier 2017 50
24 oct. 2005 à 20:43
Salut,
Voici un un script tres elementaire qui arrive a faire ce que tu veux, mais essaie de trouver un moyen pour qu'il ne fait pas des sauts des lignes et qu'il garde la ponctuation. Ces dernieres je l'ai enleve pour qu'il arrive a lire tes alphabets avant une ponctuation, exp. de ton texte:

Bonjour A va bien il discute avec B.
Il faut bien qu'il distingue A et le point, sinon il va le considerer comme un seul mot, i.e A. Il faut jouer donc avec les expressions regulieres.

Voici le script mais tu dois ameliorer la sortie.

#!/usr/bin/perl -w

open(FICA, "A.txt") || die "impossible d'ouvrir sortie: $!\n";
open(FICB, "B.txt") || die "impossible d'ouvrir sortie: $!\n";

@ligne=(); #contient ta phrase
@mots=();# contient les noms et alphabets

@ligne=(split(/[. , ]/,<FICA>));
@mots=<FICB>;
for ($i=0; $i<@ligne; $i++){
if ($ligne[$i] eq 'A'){
$ligne[$i]=$mots[0];
}
if($ligne[$i] eq 'B'){
$ligne[$i]=$mots[1];
}
if($ligne[$i] eq 'C'){
$ligne[$i]=$mots[2];
}
if($ligne[$i] eq 'D'){
$ligne[$i]=$mots[3];
}
}

print "@ligne";

close(FICA);
close(FICB);
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
25 oct. 2005 à 13:55
Yes merci a vous 2 !
du coups j'me suis débrouillé car fallait que je gère ça hier au taff :P
Mais ouais du coups je suis passé par les tableau et Zou ,boum pif paf !
En tous cas ,sympa le script j'me le mets sous le coude ^^ .

Merci les gars.

@+

Zep3k!GnO
-->hi i hi o on va pas au boulot :P
0