Lestat_2070
Messages postés71Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 5 mars 2007
-
4 oct. 2005 à 18:38
Lestat_2070
Messages postés71Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 5 mars 2007
-
5 oct. 2005 à 13:10
Bonjour à tous,
J'ai essayé de me mettre un peu au hashtables, c'est vraiment rapide par rapport aux writeini et aux readini .
Seulement, dans ma folle avancée là dedans, je me retrouve pris au
piege lol. Je m'explique: je dispose d'un dialogue, et dans celui-ci se
trouve un champ, qui doit être sauvegardé dans la partie 'data' de mon
item. Côté code, ca donne:
$hget(tablex,cfg) > pour lister le comptenu de cfg, présent dans la 'table'
alias rep { hadd tablex cfg $reptok($hget(tablex,cfg),$gettok($hget(tablex,cfg),$1,9),$2,9) } > pour changer le contenu d'une partie de cfg (j'ai oublié de dire que cfg était tokenisée), et pour utiliser celà, je fais un rep 1 4 et mon premier élément devient 4 .
Donc, c'est là que ca commence à se corser lol ^^. En effet, quand je fais un rep 5 $did(74) (pour mettre à jour le token 5, en lui mettant le contenut du champ
74), eh bien, si le champ contient une virgule (dans la configuration
d'un message automatique, par exemple), je l'ai dans l'os comme on dit
lol .
On peux penser que je me casse un peu la tête pour rien, et que je
devrai mettre chaque élément de cfg sous forme d'item, mais vu que cfg
n'est pas le seul item de la tablex... bah vous pouvez facilement
imaginer le bordel que ca donne quand je regarde ma table lol ^^. Donc,
si quelqu'un à une petite astuce pour moi, j'en serai très content ! Merci de m'avoir lu, et merci d'avance à ceux qui auront le courage de me répondre
Lestat_2070
Messages postés71Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 5 mars 2007 5 oct. 2005 à 13:10
Re ^^
Désolé du tripple post , mais j'ai trouvé la solution (enfin ^^). Je viens de m'appercevoir que j'ai trop réfléchit pour rien lol, se code suffit: $rep(5,$did($dname,74)) (et le contenu du champ 74 est totalement dans le token 5, dans la
partie data de cfg (lui même dans la tablex lol)). Voilà, c'était
vraiment tout bête . Merci quand même à Fjxokt !
Lestat_2070
Messages postés71Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 5 mars 2007 4 oct. 2005 à 20:52
Bonsoir Fjxokt ^^
Oui lol, j'avoue c'est pas très bien expliqué (je suis pas doué pour ca
(pour l'ircscript aussi lol))... en gros, si le $2, dans
hadd tablex cfg $reptok($hget(tablex,cfg),$gettok($hget(tablex,cfg),$1,9),$2,9),
bah ca foire lol... plus précisément, il ne me prends pas ce qui se
trouve après l'espace. Pour en revenir à plusieurs items, je
préfererais ne pas en avoir 50 lol... c'est tout ^^; et puis vu la
rapidité des hashtables, c'est pas quelques identifieurs de tokens qui
vont ralentir le truc, au point qu'un readini soit plus rapide non ? (et vu qu'ils y a des experts sur ce site ).
Mouais, je vais essayer un $reptok (par dessus lol), pour changer
l'espace en un $chr(x), meme s'il faut le réutiliser un autre $reptok
pour remplacer le caractère ascii en espace (comme avant). Merci Fjxokt
note: j'aurai pensé qu'un truc dans le rep 5 $did(74), suffirai à lui faire prendre tout le contenu de $did(74).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Lorsque le champ 74 contient un espace, evidement le $2 de l'allias
retourne que le début (par exemple, s'il s'agit d'un 'bonjour à tous',
le $2 contiendra bonjour, $3 à et $4 tous). Donc, me revoilà à la case
départ . Il faudrait peut être faire un allias du genre:
alias espace_fix { var %a = 1, %b | while ($ $+(%a)) { var %b $addtok(%b,$ $+(%a),32) } | inc %a } | return %b }