[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

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
201
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