XIII Le 10/08/2001 à 17:19 j'ai dans mon repertoire main une liste nommee list
comment je fais pour afficher son contenu a l'ecran??
avec pritnf par exempe?
donne moi une ligne de code please
j'en ai grave besoin
Un conseil : ne supplie pas comme ca. Ca a tendance à enerver, ou à faire pitie....
cmd_pause($(mainlist));
[edit]Edité par Kevin Kofler le 08-08-2001 à 23:50:18[/edit]
je sais plus trop exactement, mais faut que tu trouve son Handle, et a^rès, tu fais HToESI...
Tu utilises ce poinetrude type ESI avec cmd_pause...
Ca devrait marcher (je me souviens plus des détails)
PS: je suis d'accord avec Aghnar...
squale92, ta méthode marchera, mais cmd_pause($(mainlist)); suffit.
XIII Le 10/08/2001 à 17:19 je suis entierement d'accord avec toi aghnar, seulement ca fait au moins trois fois que je met une annonce soit sur ce site soit sur celui de thomas naussbaumer, et personne ne m'a donne une reponse cense. evidement quand on met "liste" en sujet, ca attire moins les foules. Alors je suis desole d'avoir eu recourt a de telles supplications, mais y a quand meme trois fois plus de personne qui ont mate ce que j'ai dit....
D'autre part, la macro $() ne donne pas le contenu mais le nom. Le truc de kevin affiche donc a l'ecran: "main list". Ce qui n'a pour moi aucun interet.Donc j'ai toujours pas capter...
Déjà, $(mainlist) ne fonctionne pas, il faudra mettre "main\list"+10.
Mais là aussi, AMS ne "simplifie" pas l'expression pour je ne sais pas quelle raison, donc il faudra probablement utiliser la méthode de squale92:
cmd_pause(HToESI(SymFindPtr("main\list"+10,0)->handle));
Cette fois-ci, c'est testé et ça marche.
Kevin> La méthode que j'ai donné... ben, en fait, c'est toi qui m'en avais donné l'idée il y a bien longtemps sur ce forum parce que j'y arrivais pas...
Merci encore d'ailleurs....
XIII Le 10/08/2001 à 17:19 merci kevin, maintenant ton truc marche effectivement, et c'est meme encore plus beau comme ca:
Print2DExpr(Parse2DExpr(HToESI(SymFindPtr($(list),4)->handle), FALSE), DeskTop, 20, 50);
mais maintenant je suis confronte a un autre chetit probleme comment lire juste un element de la liste? l'equivalent en basic de list[3] en gros, j'aimerais si il est possible de lire un element seul directement, ou comment faire indirectement c'est a dire en definissant une liste un c de meme contenu que celle dans la VAT??pour en suite l'utiliser a son gree....
ça, c'est trop le bordel...
Faut connaitre le format des variables... et pouvoir les lire octet par octet...
Godzil m'a envoyé un truc à ce sujet, et je suis en trin de le compléter pour le rajouter à mon tuto, mais ça sera pas avant septembre (je pars en vacances bientôt....)
ESI esi;
int i;
esi=HToESI(SymFindPtr($(list),4)->handle)-1;
for(i=1;i<n;i++) esi=next_expression_index(esi);
XIII Le 10/08/2001 à 17:19 le principe a l'air tres bon kevin, mais j'arrivepas a le faire marcher, sans doute parce que ya deux trucs que je ne comprends pas tres bien
1) le -1 a la 3 eme ligne, c'est pour enlever le caractere qui signifie la fin de la liste?
2) le n a la 4 eme ligne, c'est le nombre d'element de la liste?
merci
>XIII:
>1) le -1 a la 3 eme ligne, c'est pour enlever le caractere qui signifie la fin de la liste?
Oui et non. C'est pour enlever le caractère qui est à la fin de la liste, mais comme les variables de AMS sont enregistrées "à l'envers", il s'agit du LIST_TAG qui marque le début d'une liste.
>2) le n a la 4 eme ligne, c'est le nombre d'element de la liste?
Non, c'est le nombre de l'élément auquel tu veux accéder.
D'ailleurs, ensuite, tu as une variabkle de type ESI. Pour récupérer sa valeur, il te faudra utiliser des fonctions comme GetIntArg, par exemple:
int valeur;
valeur=GetIntArg(esi);