IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Remplir un hash automatiquement


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 51
    Par défaut Remplir un hash automatiquement
    Bonjour,
    Est ce que quelqu'un peut m'aider à comprendre comment remplir automatiquement un hash (comme peut le faire le push avec un tableau).

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    my %troncature;
    while (<FIC>){
      foreach $idFld(@id) {
       print "valueId= $valueId, idFld= $idFld\n";
       $troncature{$valueId}{$idFld};
       }
    }
     
     while (my ($clef,$valeur)=each(%troncature))
      {
       print "Clé= $clef, Valeur= $valeur\n";
     }
    Mon problème est que dans ma 1ere boucle while les valeurs de $valueId et $idFld, s'affichent très bien.
    Dans la 2eme boucle, Ma clé s'affiche très bien mais ma value affiche : HASH(0x1a98bbc) par exemple

    Ce qui me laisse penser que mon hash est mal rempli mais je ne comprend pas du tout pourquoi ...
    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Par défaut
    Bonjour,

    Tu veux avoir quelle structure au final ? Parce que tu fais ici un hash de hash, je doute que ce soit ce que tu veux. Je pense qu'il te faut remplacer $troncature{$valueId}{$idFld}; par $troncature{$valueId} =$idFld; .
    Autre chose, utilise un foreach plutôt qu'un while pour lire ton hash, c'est plus joli

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 51
    Par défaut
    En fait, je souhaite récupérer la valeur de mon idValue et de mon idFld qui correspond.

    Exemple :
    idValue = 1
    idFld = blabla
    idValue = 2
    idFld = blabla2
    idValue = 3
    idFld = blabla3

    résultat :
    1 blabla
    2 blabla2
    3 blabla3

  4. #4
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 51
    Par défaut
    ça roule
    Merci )))

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 51
    Par défaut
    Encore une question.
    Est il possible de créer un tableau qui permettrait d'avoir 3 dimensions ?
    Actuellement je récupère :
    1 blabla1
    2 blabla2
    3 blabla3

    Je voudrait ajouter un 3eme élément.

    Exemple :
    idValue = 1
    idFld = blabla
    size = 5
    idValue = 2
    idFld = blabla2
    size = 6
    idValue = 3
    idFld = blabla3
    size = 6

    résultat :
    1 blabla 5
    2 blabla2 6
    3 blabla3 6

    Est ce possible ?

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Tu peux créer des structures de données aussi imbriquées que tu veux en Perl.

    Par exemple, un hash de hash :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my %truncature;
    while (<FIC>){
      # ...
       $truncature{$valueId} = {idFld => $idFld, size => $size};
       # ...
    }
    ou un hash de tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my %truncature;
    while (<FIC>){
      # ...
       $truncature{$valueId} = [ $idFld, $size ];
       # ...
    }
    ou ...

    C'est à toi de voir quelle structure de donnée est la plus adaptée à ton programme, aux manipulations que tu veux faire subir à tes données. (la lisibilité peut aussi entrer en compte : par exemple dans notre cas, un hash de hash est plus explicite, un hash de tableau plus efficace)

    --
    Jedaï

Discussions similaires

  1. [JAAS] hash automatique des mots de passe
    Par Jidefix dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 25/05/2007, 11h59
  2. [VBA]Remplir un champ automatiquement
    Par e040098k dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 26/04/2007, 15h01
  3. Remplir/Lire Hash de hash de tableaux
    Par aikinhdo dans le forum Langage
    Réponses: 7
    Dernier message: 04/04/2007, 00h07
  4. Réponses: 14
    Dernier message: 27/10/2006, 23h15
  5. Réponses: 14
    Dernier message: 17/05/2006, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo