cs_Squallou
Messages postés249Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention15 juillet 2006
-
5 mai 2005 à 02:08
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 2009
-
10 janv. 2006 à 17:36
Bonjour tout le monde.
Je suis à fond dans les Hash Tables en ce moment et il y a une chose que je ne comprends pas : l'ordre de création. Je m'explique :
si je fais :
/hadd TEST UN un
/hadd TEST DEUX deux
et que je vérifie le contenu de la table (avec un echo -a $hget(TEST,1).item $hget(TEST,1).data et $hget(TEST,2).item $hget(TEST,2).data), j'obtiens :
UN un
DEUX deux
jusque là ok pas de pb...
MAIS si je fais :
/hadd TEST DEUX deux
/hadd TEST UN un
et que je revérifie le contenu j'obtiens :
UN un
DEUX deux
et là est le pb puisque j'avais inversé l'ordre de création de chaque item et de leur valeur !
Alors pk j'obtiens que l'item 1 est "UN" dans les 2 cas alors que je ne le crée pas au même moment dans chaque cas ?
Quel logique dans la création d'un item (et éventuellement de sa valeur) ?
Merci de m'aider car ça me serait très utile de comprendre ça ^^"
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 5 mai 2005 à 12:25
Euh, comme le précise l'aide mirc,
$hget(Table,N).item c'est pas la bonne facon d'utiliser les hashtables,
c'est pas efficace... si tu stockes le contenu d'une combobox
simplement, pourquoi tu fais pas ca ? :
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 5 mai 2005 à 10:01
Dans les hashtables, un item est associé a une
valeur, mais l'ordre de création n'a pas d'importance et n'est surtout
pas pris en compte... (je suppose que c'est pour des pb d'optimisations
internes, les hashtables sont stockées en mémoire vive et pas sous une
forme aussi simple que les .ini)
Si tu veux garder un ordre de création, tu peux par exemple faire une
autre table dans laquelle tu stockerais tes infos en "N >
ItemDeLa2eTable"
PaDa
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Squallou
Messages postés249Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention15 juillet 2006 5 mai 2005 à 11:37
J'explique pk l'ordre m'est important :
J'ai une combobox à laquelle l'utilisateur on peut ajouter des éléments. Le contenu de cette combobox est stockée dans une HTable (et mis à jour à chaque fois qu'un élément y est ajouté).
De manière à ce que quand on rouvre la fenetre, les items de la HTable se remettent dans la combobox.
Et s'ils sont inversés, comprenez bien que si le dernier élément ajouté à la combobox (donc tout en bas) se retrouve tout en haut, mon script a l'air un peu con lol
C'est dommage ce petit inconvénient :( moi qui était tombé amoureux des HTables v_v. J'attend encore un peu qq réponses avant de valider. Au cas où une solution miracle serait trouvée lol
Nolson
Messages postés216Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention16 mars 2006 5 mai 2005 à 11:52
Utilise un système de double table comme te l'a proposé PaDa.
Une pour enregistrer les valeurs de tes items et une pour enregistrer l'ordre d'enregistrement des items.
fjxokt
Messages postés840Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention25 février 20091 5 mai 2005 à 12:08
si tu dis que seul le dernier element se retrouve en
premiere position, et bien tu mn'as qu'a charger ta table a partir du
second, pour finir par le premier
cs_Squallou
Messages postés249Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention15 juillet 2006 5 mai 2005 à 12:23
lol non c pas tjs le cas c'est complètement dans le désordre en fait je disais ça pour simplifier c'était qu'une image lol. Tout est dans le désordre en fait. v_v
cs_Squallou
Messages postés249Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention15 juillet 2006 5 mai 2005 à 12:44
Oui PaDa c'est ce que je fais pour charger le contenu de ma HTable dans ma Combo.
Mais le problème est :
En fermant ma fenetre, comment stoker la 1ere ligne dans le 1er item de la table, la 2eme ligne dans le 2eme item etc...
Comment conserver l'ordre ?
Nolson
Messages postés216Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention16 mars 2006 5 mai 2005 à 13:12
Ceci fonctionne uniquement si on a pas besoin de nommer spécifiquement les items, et apparemment c'est ton cas. Mais si tu as besoin de nommer les items d'une certaine façon et que tu as besoin de connaitre l'ordre d'enregistrements des items, il faut se servir de deux tables.
cs_Squallou
Messages postés249Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention15 juillet 2006 5 mai 2005 à 14:58
Oui fjxokt ^^
jcompte utiliser les Htables pour toutes mes autres fenetres mais en effet (et ct pas dur à deviner v_v) là c'est celle de l'autojoin lol
carpediem666fr
Messages postés122Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention 2 novembre 2008 11 mai 2005 à 22:46
j 'ai mis des hash tables en me disant que ct plus rapide que les traditionnels set %toto .. Mais voila :
Achaque sortie de mon script, je fais un hash.save.all vers un fichier pour chaque table
Au demarrage, je fais un hash.load.all pour chaque table aussi (je vous
laisse imaginer les contneeus de ses deux fonctions, le titre etant
assez parlant) . bref, une des tables est systématiquement vide lorsque
je redemarre.. qqun a une idée pourquoi?
CarpeDiem
- http://www.carpescript.tk - VRAI site warez, 100% gratuits