Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1429 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] boucle imbriquées

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PERL] boucle imbriquées

n°1810859
x-ben
Posté le 11-11-2008 à 15:35:49  profilanswer
 

Salut à vous.
j'ai un ptit soucis:
j'ouvre 2 fichiers texte en lecture et je veux traiter chacune des paires de mots en les envoyant dans une fonction.
je fais donc un truc de la sorte:

Code :
  1. open(F1, 'f1.txt') || die "erreur douverture";
  2. open(F2, 'f2.txt') || die "erreur douverture";
  3. while (<F1> )
  4. {
  5.     while(<F2> )
  6.     {
  7.         fonction ($_,?????)    #  quoi mettre pour le 2eme argument?
  8.     }
  9. }


 
je récupère le première valeur avec $_ mais je ne sais pas comment récupérer la 2eme  [:at war with emo]


Message édité par x-ben le 11-11-2008 à 15:47:22
mood
Publicité
Posté le 11-11-2008 à 15:35:49  profilanswer
 

n°1810860
x-ben
Posté le 11-11-2008 à 15:43:43  profilanswer
 

j'ai trouvé ça:

Code :
  1. open(F1, 'f1.txt') || die "erreur douverture";
  2. open(F2, 'f2.txt') || die "erreur douverture";
  3. while ($l1 = <F1> )
  4. {
  5.     while($l2 = <F2> )
  6.     {
  7.         fonction ($l1,$l2)
  8.     }
  9. }


 
prob: ça arrete de boucler a la fin de la premiere boucle  [:autobot]

Message cité 1 fois
Message édité par x-ben le 11-11-2008 à 15:46:28
n°1810866
x-ben
Posté le 11-11-2008 à 16:10:53  profilanswer
 

help, qqun saurait pkoi ça s'arrete à la fin de la première boucle?

n°1810979
dreameddea​th
Posté le 11-11-2008 à 22:36:27  profilanswer
 

il s'arrêtera dès qu'il rencontrera la fin d'un des deux fichiers ...
 
Petite question, il y a combien de lignes dans les fichiers, et as-tu fait attention au caractère de séparation de ligne (variable $/) ?
 

n°1810984
x-ben
Posté le 11-11-2008 à 23:00:30  profilanswer
 

merci bien.
en fait, il faut refermer le fichier imbriqué pour que ça boucle.(sinon il ne lit qu'une fois)
une connerie de débutant    [:airforceone]

n°1811686
gilou
Modérateur
Modzilla
Posté le 13-11-2008 à 16:20:34  profilanswer
 

x-ben a écrit :

j'ai trouvé ça:

Code :
  1. open(F1, 'f1.txt') || die "erreur douverture";
  2. open(F2, 'f2.txt') || die "erreur douverture";
  3. while ($l1 = <F1> )
  4. {
  5.     while($l2 = <F2> )
  6.     {
  7.         fonction ($l1,$l2)
  8.     }
  9. }


 
prob: ça arrete de boucler a la fin de la premiere boucle  [:autobot]


Faut revenir en debut de ton second fichier apres chaque tour de boucle interne.

Code :
  1. open(F1, 'f1.txt') || die "erreur douverture";
  2. open(F2, 'f2.txt') || die "erreur douverture";
  3. while ($l1 = <F1> )
  4. {
  5.     while($l2 = <F2> )
  6.     {
  7.         fonction ($l1,$l2)
  8.     }
  9.     seek(F2, 0, 0);
  10. }


A moins que ce que tu veuille faire soit:

Code :
  1. open(F1, 'f1.txt') || die "erreur douverture";
  2. open(F2, 'f2.txt') || die "erreur douverture";
  3. while (($l1 = <F1> ) and ($l2 = <F2> ))
  4. {
  5.         fonction ($l1,$l2)
  6. }


A+,


Message édité par gilou le 13-11-2008 à 16:23:43

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1811841
x-ben
Posté le 13-11-2008 à 21:45:09  profilanswer
 

je connais pas seek. j'ai mis close(F2) et ça marche.
mais sans doute que seek c'est plus approprié, je vais me enseigner sur la commande.
merci à toi Gilou

n°1812541
gilou
Modérateur
Modzilla
Posté le 15-11-2008 à 17:00:37  profilanswer
 

seek( F, 0, 0) ca rembobine le fichier F au début sans le fermer justement.
Si tu passes par un close, alors le open correspondant doit être a l'interieur de la premiere boucle et non a l'exterieur.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] boucle imbriquées

 

Sujets relatifs
MySql 4.0 - Imbrication de Select avec In()Aide boucle While Encore ?? je pete un cable ... :'(
Perl + LWP + Cookie[batch] un bète SET puis ECHO dans une boucle for, mais non...
Utilisation d'un programme perl sous VBA[résolu]boucle de classement selon valeur tableau
Problème d'execution de module perlBoucle sur répertoire en batch
[java]ObjectIn/outputStream dans une boucle 
Plus de sujets relatifs à : [PERL] boucle imbriquées


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR