Voilà mon problème en fait j'aimerais pouvoir récupérer tous les noms de variables présentes dans un dossier dans un liste.
L'ai essayer de comprendre ce qui est expliqué dans la FAQ de TIGCC sur SymFindFirst et SymFindNext mais j'arrive pas bien à comprendre.
Donc voilà si quelqu'un aurait quelque chose à me filer ou bien pourrait rapidement prendre le temps de m'expliquer ça:
counter = 0;
SymPtr = SymFindFirst (SYMSTR ("main"), FO_SINGLE_FOLDER);
while (SymPtr)
{
strcpy (names[counter++], SymPtr->name);
SymPtr = SymFindNext ();
}
Merci :-)
Le flag FO_SINGLE_FOLDER permet d'indiquer à SymFindFirst de rechercher tous les fichiers contenus dans le dossier indiqué par SymName (main).
Après le premier apppel de SymFindFirst, le fonction retourne l'adresse du premier fichier qui est dans le dossier (ou bien NULL si il n'y a aucun fichier dans le dossier désigné).
Ensuite, chaque appel à SymFindNext permet d'avoir successivement les adresses des fichiers suivants. Jusqu'à ce qu'on ait parcouru toute la liste de ces fichiers, auquel cas, la fonction SymFindNext retourne NULL, et la boucle se termine
En fait j'aurais une autre question en l'occurence les adresses retournées seront des pointeurs vers quel type.
J'ai essayé de déclarer SymPtr comme un pointeur vers un char comme je le fais pour des fonctions de la lib string.h mais ça me retourne: incompatyble pointer type.
Si je comprends bien ta question, ce sont des SYM_ENTRY * qu'il te faut.
Euh oui c'est vrai mais dans mon cas, j'aimerais récupérer une chaine de caractère correspondant à cette adresse. Il mes semble bien que le TIOS utilise des chaines comme nom pour ses variables, comment récupérer ces chaines?
Link Le 10/07/2003 à 21:46 SYM_ENTRY est une structure.
Le nom est stocké dans un tableau de 8 chars dans la structure. Attention, si le nom fait exactement 8 chars, il n'y aura pas de zéro terminal!

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.
Très sale, buggé, très mal fait car comportement non standard... C'est DoorsOS...
En principe, non, il ne devrait pas y avoir de zéro terminal si le nom fait 8 caractères...