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

  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] Mixer un tableau

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PERL] Mixer un tableau

n°2151121
grulles
Posté le 26-07-2012 à 12:16:36  profilanswer
 

Bonjour,
J'ai un petit problème avec un tableau(liste). Je dois mixer les entrées entre elles. Voici le tableau à l'origine  
entre 0 ="FOO","1"
entre 1 ="FOO","2"
entre 2 ="FOO","3"
entre 3 ="FOO","4"
entre 4 ="FOO","5"
entre 5 ="BAR","a"
entre 6 ="BAR","b"
entre 7 ="BAR","c"
entre 8 ="BAR","d"
entre 9 ="BAR","e"
 
Le but de jeu c'est l'entrée 0 de ce tableau = l'entrée 0 + entre 5  ... puis l'entrée 1 + entre 6  et ainsi de suite jusqu'a l'entrée 4 puis l'entrée 5 qui devra prendre les valeur de l'entree 5 + entre 0 ...  
Au final j'essaye d'obtenir ceci  
 
entre 0 ="FOO","1","BAR","a"
entre 1 ="FOO","2","BAR","b"
entre 2 ="FOO","3","BAR","c"
entre 3 ="FOO","4","BAR","d"
entre 4 ="FOO","5","BAR","e"
entre 5 ="BAR","a","FOO","1"
entre 6 ="BAR","b","FOO","2"
entre 7 ="BAR","c","FOO","3"
entre 8 ="BAR","d","FOO","4"
entre 9 ="BAR","e","FOO","5"
 
J'ai essayé plein de chose, le meilleur résultat que j'ai obtenu c'est que les 5 premières entrées étaient correct après j'avais des résultats vraiment étrange.
Si quelqu'un à déjà eu cela à faire et qu'il a une solution, je suis preneur.
Merci pour votre aide
Grulles
 

mood
Publicité
Posté le 26-07-2012 à 12:16:36  profilanswer
 

n°2151139
gilou
Modérateur
Modzilla
Posté le 26-07-2012 à 14:17:02  profilanswer
 

Si j'ai bien compris, tu as au départ un tableau perl, dont chacune des entrées est un tableau à deux éléments?
Alors ceci devrait le faire:

Code :
  1. my $i = 0;
  2. my $middle = int($#a/2 +1);
  3. my @tmp;
  4. do {
  5.  @tmp = @{$a[$i]};
  6.  push $a[$i], @{$a[$middle + $i]};
  7.  push $a[$middle + $i], @tmp;
  8. } while (++$i < $middle);


ou @a est ton tableau initial
 
A+,


Message édité par gilou le 26-07-2012 à 14:50:45

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2151142
grulles
Posté le 26-07-2012 à 14:36:44  profilanswer
 

Salut Gilou,
Décidément c'est toi le champion du PERL ici :-)
@a est juste un tableau pas un hash. 1 seule entrée par ligne.  
Voila comment je peuple le tableau @a via un autre tableau @Untableau en ne conservant que les entrées qui contiennent un certain pattern (ici "PATTERN" )
foreach (@Untableau){
 if ($_ =~ /"PATTERN"/) {
   @temp= split(/,/,$_);
   $a[$i]=$temp[0].",".$temp[2];
   chomp($a[$i]);
   print $a[$i]."\n";
   $i++;
  }
}
Merci encore pour ta réponse.

n°2151159
gilou
Modérateur
Modzilla
Posté le 26-07-2012 à 15:15:56  profilanswer
 

Si tu n'as qu'un tableau contenant du texte, alors c'est simple:

Code :
  1. my $i = 0;
  2. my $middle = int($#a/2 +1);
  3. my $tmp;
  4. do {
  5.  $tmp = $a[$i];
  6.  $a[$i] .= "," . $a[$middle + $i];
  7.  $a[$middle + $i] .= "," . $tmp;
  8. } while (++$i < $middle);


 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2151160
grulles
Posté le 26-07-2012 à 15:26:40  profilanswer
 

Gilou,
Merci c'est exactement le résultat que je voulais obtenir.
Donc si j'ai bien compris pour le premier bout de code que tu m'as fournis c'est pour les hash?  

n°2151204
gilou
Modérateur
Modzilla
Posté le 26-07-2012 à 18:17:24  profilanswer
 

Le premier bout de code, c'est pour un tableau dont chaque ligne est un tableau avec deux champs.
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] Mixer un tableau

 

Sujets relatifs
problème avec de manager.canvas.draw de matplotlib et gobject.idle_addVariable Tableau qui ne passe pas en condition ( ! )
Rappel des entêtes de colonnes d'un tableau htmlPERL SQLPLUS encapsulé
Tableau PHP & Fichier texteTableau associatif numéroté
[PERL] Lire un paragrapheCréation d'un nouveau tableau sans cellule vide
Help! Extraire données en tableau + publipostageComment compter le nombre de lignes dans un tableau croisé dynamique ?
Plus de sujets relatifs à : [PERL] Mixer un tableau


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