comment en basic, lister toutes les variables d'un rep et ne selectionner que les var de type listes ?
(pour faire un menu déroulant)
impossible en basic.
il te faut passer par un programme en Assembleur
Link Le 12/10/2002 à 15:25Edité par Link le 12/10/2002 à 15:26 Sinon, si c'est pour un jeu, tu peux faire des listes avec le même nom et un numéro, puis:
{}->chnlist
for num,0,99
"liste"&string(num)->chn
if getType(#chn)=getType(chnlist)
augment(chnlist,{chn})->chnlist
endfor
j'utilise 2 getType pour la comptatibilité multilingue (qui m'est chère et qu l'est aussi à d'autres)
Tu récupères tes noms dans chnlist.
Sinon, j'ai fait un prog unpeu comme ça (une lib) mais pour l'instant elle n'existe que chez moi.
Edit:y'a un point-virgule en trop dsl

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
Xeno Le 12/10/2002 à 20:13 oui, il est possible d'assigner des variables hors de la liste, cette dernière est agrandie automatiquement...
"Scrutant profondément ces ténèbres, je me tins longtemps plein d'étonnement, de crainte, de doute..."
Edgar Allan Poe
Ton code est faux.
La boucle ne marche que si on stocke les valeurs dans chnlist au fur et à mesure. Ton seq ne marche pas.
je ne veut pas faire liste1, liste2... comment reconnaitre mes variables après, c'est le meilleur moyen de se tromper.
Je pourrais utiliser vertel, ca m'embete d'utiliser une lib externe juste pour recuperer une liste de var...
Kevin Kofler Le 13/10/2002 à 02:02Edité par Kevin Kofler le 13/10/2002 à 02:05 Parce que augment(chnlist,{"liste"&string(num)}),chnlist) ne modifie pas chnlist. Il faut mettre augment(chnlist,{"liste"&string(num)}),chnlist)->chnlist pour modifier chnlist. Ton seq ne modifie chnlist qu'à la fin alors qu'il faut le faire au fur et à mesure pour son algorithme.
seq ne marche que si tu sais que tu veux créer une liste d'un nombre fixé d'éléments. Ici, la liste résultante n'aura pas nécessairement 99 éléments, donc le seq n'est pas approprié du tout.
( c'est augment(chnlist,{"liste"&string(num)}) et pas augment(chnlist,{"liste"&string(num)}),chnlist) )
Et c'est le When qui rajoute ou pas un élément à la liste. Le Seq fait simplement défiler ces élément.
Donc Seq fait défiler les éléments, When les ajoutes ou pas à la liste, et Seq renvois la liste renvoyée par When.

Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.
Zeph Le 13/10/2002 à 02:22 Il faudrait à la limite utiliser des trucs tordus plein de sous-chaines genre "expr(""var"")", et encore je suis même pas sûr que ça marcherait...
La boucle for est bien mieux adaptée en effet.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
seq n'est là que pour faire une liste avec un nombre constant d'éléments.