Rechercher : dans
Par :

[PERL]Fichier annexe...

Dernière réponse le 25 oct 2005 à 13:55:20 Zep3k!GnO, le 24 oct 2005 à 14:10:07 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [PERL]Fichier annexe... » dans :
Perl - Les fichiers Voir La notion de filehandle On appelle filehandle (traduisez descripteur de fichier), dans un programme Perl, le nom permettant de manipuler une connexion d'entrée-sortie (les entrées-sorties standards vues précédemment sont connues par les filehandles...
Envoi de commandes CISCO publipostées via SSH/Telnet VoirExpect en action Informations générales publipmachin point cheu ? Mais c'est quoi au juste ? Le contenu des fichiers annexes commandes.txt liste.txt THE Script Commentaires Remerciements Questions / Report de Bugs / Modifications
Perl - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
Perl - Caractéristiques du langage VoirFichier source, et interprétation Le fichier source d'un programme écrit en Perl est un simple fichier texte dont l'extension est par convention .pl. Ce fichier source doit être un fichier texte non formatté, c'est-à-dire un fichier texte dans sa...
Perl - Entrée et sortie standards VoirQu'appelle-t-on entrée standard et sortie standard ? Perl permet d'écrire sur la sortie standard, appelée STDOUT et de lire sur l'entrée standard (STDIN). Il s'agit de deux descripteurs fournis par le système d'exploitation et permettant...

1

crabs, le 24 oct 2005 à 20:16:05

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 ..., I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding - founder and maintainer of Slackware

Répondre à crabs

2

hssissen, le 24 oct 2005 à 20:43:37

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);

Répondre à hssissen

3

 Zep3k!GnO, le 25 oct 2005 à 13:55:20

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

Répondre à Zep3k!GnO