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

  FORUM HardWare.fr
  Programmation
  Perl

  Comparaison de valeurs dans deux Hash

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comparaison de valeurs dans deux Hash

n°1715717
KuKrApOk
17 Girls in a row
Posté le 10-04-2008 à 16:12:48  profilanswer
 

Bonjour à tous,  :hello:  
 
Je viens ici vous exposer mon problème, car débutant en Perl, je n'arrive pas à trouver une réponse évidente a ma question à travers les divers pdf que le sujet que j'ai pu lire
 
je dispose de deux tableaux associatifs
%collection1
%collection2
 
je l'ai rempli ainsi (via une lecture dans un fichier)
 

%collection1 = (
         $enseigne => $modele,
);

Si j'ai tout bien compris je devrais avoir un tableau ainsi si on l'imagine "humainement"

|Enseigne | Modèle |
--------------------
| Pegeot  | 206    |
| Pegeot  | 306    |
| Pegeot  | 207    |
| Citroën | C2     |
| Citroën | C3     |
| Renault | R5     |
--------------------

je voudrais faire un test pour comparer les deux collections
Le but serait pour chaque enseigne, de regarder si les deux collections partagent au moins un modèle
 
Si oui, ajouter cette enseigne dans @commun, qui est un simple tableau
 
Si vous aviez une petit idée de comment faire cela, je vous en serais reconnaissant !

mood
Publicité
Posté le 10-04-2008 à 16:12:48  profilanswer
 

n°1715738
Taz
bisounours-codeur
Posté le 10-04-2008 à 16:21:07  profilanswer
 

y a certainement des modules pour faire ça, mais ça me vient pas là.
 
avec values %mon_hash, ça te file les modèles, après tu peux comparer, chercher des correspondances.

n°1715757
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-04-2008 à 16:34:59  profilanswer
 

KuKrApOk a écrit :

Si j'ai tout bien compris je devrais avoir un tableau ainsi si on l'imagine "humainement"

|Enseigne | Modèle |
--------------------
| Pegeot  | 206    |
| Pegeot  | 306    |
| Pegeot  | 207    |
| Citroën | C2     |
| Citroën | C3     |
| Renault | R5     |
--------------------



presque mais ratal :o, tu as

|key | value |
--------------------
| Pegeot  | 207    |
| Citroën | C3     |
| Renault | R5     |
--------------------


ce n'est pas parce que ta variable s'appelait $enseigne; qu'il en va de même pour la colonne.
Par ailleurs les clés sont "uniques" dans une hash, tu ne peux pas avoir plusieurs éléments pour la même clé juste en faisant $collection1{$enseigne} = $modele;

 

Le plus simple va être de transformer ta 2eme colonne afin qu'elle contienne (une ref sur ) un tableau et non plus un simple element.

 

Une fois que tu auras réussi on passera à la fonction de comparaison de 2 hashs.
Mais voila déjà la recette du cookbook pour identifier les clés communes à 2 hashs.

Code :
  1. my @common = ();
  2. foreach (keys %hash1) {
  3.    push(@common, $_) if exists $hash2{$_};
  4. }


ça devrait te donner des pistes ;)


Message édité par anapajari le 10-04-2008 à 16:35:34

---------------
Software and cathedrals are much the same - first we build them, then we pray.

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

  Comparaison de valeurs dans deux Hash

 

Sujets relatifs
Comparaison de données sous ExcelFormulaire --> Calcul automatique à partir de valeurs récupérées
[VB/VBA/VBS] Afficher des valeurs en fonction des données d'un champParcourir un Char[ ] grâce aux valeurs d'un Char [ ]
Comparaison et Remplacement StringRécupérer les valeurs d'un parametre OUT d'une procédure stocké
substitutions de valeurs dans un fichierRécupération de valeurs et découpe
comparaison de registre et fichier .regcomparaison des champs access
Plus de sujets relatifs à : Comparaison de valeurs dans deux Hash


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