Je voudrais savoir comment changer le repertoire courant, quand le nouveau nom n'est pas une constante.
Car quand on utilise "FolderCur " le nom du rep doit etre une constante.
unsigned char *str="folder";
FolderCur (str,TRUE);
"const" ne veut pas dire que la chaîne doit être une constante.
Attention, il me semble que la chaîne doit commencer par un zéro, et qu'il faut passer un pointeur sur la fin de cette chaîne.

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
ça veux dire quoi alors ?
Qu'il faut vérifier dans la doc de TIGCC.
Et je viens de la faire, et c'est bien le cas : tu ne peux pas passer une chaîne normale.

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
nan en fait je demandais ce que const voulais dire.
de plus je sais qu'il ne faut pas passer une chaine normale, j'ai essaiyé avec un truc comme ça mais ça n'a pas marché:
char string_temp[20]="";
hsym = SymFind (strcpy (string_temp + 1, "jeux") + strlen ("jeux"));
FolderGetCur(hsym);
Simplement pour te signaler que la fonction ne modifieras pas la châine.
Sinon, quand tu implémentes toi-même une fonction avec des paramètres déclarés avec const, le compilo t'avertit (voir s'arrête, j'ai jamais essayé) si tu tentes de modifier les paramètres.

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Attention, il me semble que la chaîne doit commencer par un zéro, et qu'il faut passer un pointeur sur la fin de cette chaîne
Ah oui, désolé, j'avais oublié ça.
Pour passer un pointeur sur la fin de la chaine il faut faire un truc comme ça ?
sprintf(buffer,"%c%s",' ',"jeux")
FolderCur(buffer[5],TRUE);
LhA Le 20/02/2002 à 17:06 >En ASM se serait bcp + rapide.
tu peu me dire comment on fait en ASM?
Des joueurs de brood war ici? /w TIman[sL] [br] L’abondance de paroles inutiles est un symptôme certain d’infériorité mentale.
Mais c'est plus propre de ne pas démolir l'octet qui précède la chaîne de caractères donnée (même en le sauvegardant). Par exemple, qui te dit qu'il ne se trouve pas en ROM (dans un fichier externe)? La méthode du strcpy est beaucoup plus propre. (C'est aussi une objection à faire à tes routines de fichier que tu veux nous faire utiliser.) Sauf que pour être vraiment sûrs, il faudrait d'abord un strlen pour vérifier si le nom n'est pas trop gros pour le buffer. (Je me demande si je ne devrais aussi rajouter ça dans nos routines de fichier. Pour l'instant, il n'y a pas de vérification de la longueur de la chaîne.)
[edit]Edité par Kevin Kofler le 20-02-2002 à 20:59:57[/edit]
>Sinon, tu ne saurais pas nous expliquer l'utilité du fameux paramètre nonSys ?
Je n'en sais pas plus que ce qui est écrit dans la documentation de TIGCC.
PpHd Le 21/02/2002 à 08:28 Je suis d'accord avec Kevin. C'est sale comme methode. Surtout que ca n'a pas besoin d'etre rapide.
Et puis, Thibaut, si tu avais lu la documentation de TIGCC correctement, tu saurais que selon TI (je suppose que Zeljko a lu ça dans la documentation du SDK), il faut toujours passer TRUE pour nonSys pour éviter des ennuis. Et puis, il vaut toujours mieux passer un paramètre bien défini (même si c'est n'importe lequel) plutôt que de ne rien passer et laisser le hasard décider. Mais apparemment Thibaut n'a jamais appris à programmer proprement.
[edit]Edité par Kevin Kofler le 21-02-2002 à 09:09:35[/edit]
Kevin, je suis désolé de ne pas être un gosse chanceux comme toi, de ne pas être tri(quadri ?)lingue.
Avec mon modeste niveau d'anglais je n'ai vraiment pas compris quelle valeur passer au second paramètre de FolderCur, parceque quand je lis ceci : "nonSys is a flag which normally need to be FALSE", puis quelques lignes plus bas : "TI says that it should be always TRUE", je ne sais pas quoi penser.
Voilà, je pense que plutôt que d'essayer de me casser avec "Et puis, Thibaut, si tu avais lu la documentation de TIGCC correctement", il aurait été plus judicieux de m'expliquer en français ce que dit la documentation, puisqu'avec la troisième phrase du post 20 j'ai montré clairement que je ne la comprend pas.
Pour l'histoire de l'octet écrasé puis restauré : je ne trouve pas ça sale. La seule possibilité de faire planter la routine serait de lire le nom du répertoire depuis un fichier en ROM... C'est pas tous les jours qu'on fait ça, probablement encore moins pour des débutants comme LhA.

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Ce que Zeljko dit, c'est:
"nonSys est un flag qui normalement doit être FALSE (je pensais ça, mais TI dit que le flag doit toujours être TRUE pour éviter des ennuis donc il vaut mieux faire ce qu'ils disent)."
Il a gardé l'ancienne phrase qu'il avait écrite, mais l'a corrigée à côté.
[edit]Edité par Kevin Kofler le 23-02-2002 à 15:50:42[/edit]
Zeljko a écrit : When it is set to TRUE, FolderCur calls SymFindNext repeatedly until the first non-system variable in this folder is reached
En fait je ne crois pas que ce soit tout à fait ça. Il y a bien un boucle avec un SymfindNext, puis tout un bidouillage avec les variables de l'AMS, mais la boucle continue même après avoir trouvée une variable "non-system", et elle continue jusqu'à ce qu'elle est scannée toutes les variables de la calc. Mais les variables systèmes échappent à ce test, la boucle passant à la prochaine variable. Enfin ça, on s'en fout un peu.
La doc du SDK dit que les graphes risquent de devenir si on met FALSE pour nonSys, et c'est justement pour ça qu'il faut mettre TRUE. Imaginons par ex. que le dossier courant est YOP, qu'il y a dans ce dossier la variable "var" qui est égale à 5, et que y1(x)=var*x. Imaginons aussi qu'il y ait aussi dans le dossier ERF la variable "var" qui est égale cette fois à 2, et que le graphe de y1 soit tracé. Si on met comme dossier courant le dossier ERF avec TRUE pour nonSys, et si on regarde l'écran Graph, y1(x) sera retracé, puisque la variable "var" utilisée pour y1(x) n'est plus la même, c'est maintenant celle du dossier ERF qu'il faut utiliser. Si on met FALSE pour nonSys, le graphe ne sera pas redessinné, et il devient alors faux.
Tout ça aussi on s'en fout un peu, en tout cas il faut mettre absolument TRUE et pas se poser de questions.