Zeph Le 13/01/2002 à 11:04 Décidément depuis que j'essaie d'apprendre le C je poste bcp ici...
Voilà mon problème : Je voudrais que mon prog renvoie une liste (comme flib) à la fin de son execution, mais le '#define return_value var" ne marche pas (je ne suit pas sûr mais c'est peut-être à cause de la récupération des arguments).
Il faut donc qu'a partir d'une liste créée dans le prog en C j'arrive à sortir la même, mais en fichier externe utilisable en Ti-Basic.
J'ai déjà peiné pour créer des fichiers PIC, mais le site de Doors m'a bien aidé en indiquant le format de ce type de variables. Par contre pour les listes je ne sait pas comment faire.
Voilà si qqun passe par là et à 5 min pr répondre... Merci d'avance !

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Nan, la structure de flib est bien clair.
Tu regardes à la fin des fonctions comme getfolder, et à la fin de la lib.

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.
Les fonctions de vat.h sont tout aussi simples. (On alloue le bloc avec HeapAlloc, on écrit tout dans ce bloc, on crée le symbole avec SymAdd, on assigne le handle du bloc au champ prévu pour ça dans la structure SYM_ENTRY et c'est bon.)
Mais RETURN_VALUE fera tout pour toi de toute façon.
Zeph Le 13/01/2002 à 20:52 Bah non il ne marche pas, je ne sait pas pkoi.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Zeph Le 15/01/2002 à 08:21 Bon tant que j'y suis, j'ai une autre question :
En basic si on crée une liste de 2 éléments et que l'on fait '1->liste[3]', un 3e élément est créé pour y mettre la valeur.
Y'a-t-il moyen de faire pareil en C ou bien faut-il prévoir à l'avance la longueur de la liste ?
Et si c'est possible, y a-t-il un équivalent de dim(liste) ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
pour les listes allouées en faisant ça au début du prog :
int ma_liste[X]; // Avec X entier positif
Il n'est pas possible d'augmenter la taille (du moins, il me semble)
SInon, il te fauit allouer dynamiquement ta liste, et, pr l'agarndir, la réallouer :
quelque chose du style (je suis pas sûr pr les prototypes des fonctions) :
int *p_sur_liste = NULL;
// Ton prog...
p_sur_liste = malloc(nombre_elements * sizeof(int)); // Alloue la liste => tu peux à présent l'utiliser.
// suite du prog...
p_sur_liste = realloc(nouveau_nombre_elements * sizeof(int)); // Réalloue ta liste, avec un nouveau nombre d'éléments...
// suite du prog...
// A la fin du prog, il fo penser à libérer l'espace mémoire utilisé par le prog :
free(p_sur_liste); // libère la mémoire de la liste => l'efface !!!
REM: je ne penses pas que tu puisse retourner une liste allouée dynamiquement => il doit falloir se démerder pour la copier sur la pile à un moment ou à un autre...
Zeph Le 15/01/2002 à 17:38 Heu... Si je comprends bien :
On met le LIST_TAG à un bout, le END_TAG à l'autre, et au milieu on met les éléments...
Alors déjà je ne sait pas si on met le LIST_TAG ) [0] ou à [dimention_de_la_liste+2], et puis ça veut dire que l'on met le premier élément dans [1], le 2eme dans [2], etc ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
niuob Le 15/01/2002 à 17:41 Le mieux si tu veux créer des listes avec les fonctions simples de stdio.h est que tu crées la liste voulue en TI-Basic, ensuite que tu étudies la "structure" hexadécimale obtenue avec un éditeur héxa, puis que tu crée ta liste en conséquence sous TIGCC.
Dans tous les cas (sans compter les checksum), tu commences par END_TAG, puis tu empiles tes expressions de la dernière à la première (structure de pile) puis tu finis avec un LIST_TAG.
Zeph Le 15/01/2002 à 18:00 1 cast ???
Bon sinon quand on met dans une liste ti-basic un nombre ou une chaine ça n'a pas d'importance. Mais en C il ne va pas y avoir de problèmes ? Enfin plus précisément je peux stocker "HelloWorld" dans liste[2] ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
niuob Le 15/01/2002 à 18:05 Dans un tableau en C ...
Une chaine de caractère étant déjà elle-même un talbeau (de dimension 1, une liste comme on dirait en Basic), tu peux donc faire soit un tableau : char tableau_chaines[50][20] // 50 chaines de 20 car. max.
ou plutôt char *tableau[50] et allouer la mémoire pour stocker les chaines de car.
mais pour interagir avec le BASIC, c la merde.
Zeph Le 15/01/2002 à 18:10 Ah merde... Parceque ct mon but premier...
J'explique : je veux aboutir au même résultat que Flib, c'est à dire que mon prog puisse renvoyer une liste Ti-Basic de données, aussi bien chaines que nombres. Et cela à partir d'une variable que je peux modifier au cours de mon prog en C.
=> Je ne voit que la possibilité d'un tableau, qui sera transphormé en liste Ti-basic à la fin du programme.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
niuob Le 15/01/2002 à 18:11 Ca dépend ... tu veux renvoyer un nombre constant d'éléments ou pas ?
Seulement des chaines de caractères ?
Bob 64> ça sort de mes compétences parce que je n'ai jamais bossé dessus : c'est quelque chose dont je n'ai jamais eu besoin our mes programmes...
=> Tu n'as pas à te considérer comme mal barré.
Zeph Le 15/01/2002 à 18:21 Bah t'as quand même bcp + d'experience que moi en C
=> Si un prog te semble difficile, moi qui débute je vais en baver !

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Zeph Le 15/01/2002 à 19:39 Au fait faut allouer cb de mémoire pour ma liste en basic ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
niuob Le 15/01/2002 à 19:59 Le mieux serait que tu n'ajoutes que d'un type de données.