Lorsque vous ouvrez le menu VAR-LINK de votre calculatrice, vous y rencontrez généralement un (grand ?) nombre de ce qui est appelé "variables".
Celles-ci peuvent être des programmes, des fichiers texte, des fonctions, des images, ...
Ce chapître va nous permettre de voir comment les manipuler, que ce soit pour en rechercher, en lire, ou en créer.
Pour commencer, nous allons voir quelle est l'utilité d'accèder à des fichiers. Nous continuerons en présentant une méthode "standard" d'accès aux fichiers, avant de dire quelques mots sur une méthode spécifique à nos machines, que nous développerons au cours de la suite de ce chapître.
Nous avons de nombreuses fois eu l'occasion de constater, au cours des différents chapîtres que nous avons rédigé, ou lu, ensemble, et à travers les exemples qu'ils vous proposaient, que nous pouvions stocker des données dans des variables propres à nos programmes.
Par exemple, nous pouvons déclarer une varible entière et l'initialiser à la valeur 10 de la manière qui suit :
Cela dit, dès que nous quittons la fonction où cette variable a été déclarée, la valeur qu'elle contenait est perdue ; autrement dit, lorsque notre programme se termine, la valeur de la variable n'est sauvegardée nulle part, et il n'est pas possible de la retrouver au prochain lancement de celui-ci.
La solution à ce problème réside dans l'emploi de ce qui est appelé, sur TI, des "variables" - sauf qu'il faut ici prendre ce terme de variable au sens de "fichier", et non pas au sens de "variable C" telle celle que nous avons rencontré quelques lignes plus haut.
Qu'est-ce qu'un fichier ? Et bien, comme sur un ordinateur, encore qu'en simplifié - n'oublions pas que nous ne sommes que sur une calculatrice - il s'agit d'une suite continue d'octets, à laquelle est associée un nom.
Par exemple, les programmes que vous lancez (et ceux que vous développez !), ainsi que toutes les données apparaissant dans le menu VAR-LINK de votre machine sont des fichiers.
Vous noterez que, au début du parapraphe précédent, j'ai employé le terme de "variable" à la place de celui de "fichier" ; c'est le nom qui est généralement utilisé sur nos machines. Il vous revient de faire la différence entre une "variable C" visible seulement par votre programme, et une "variable" accessible partout, y compris par d'autres programmes.
La plupart des compilateurs C incluent une série de fonctions d'accès aux fichiers ; ces fonctions sont toujours les mêmes, et elles sont toujours utilisées de la même manière.
En fait, ces fonctions sont définies par la norme ANSI.
TIGCC étant un compilateur C, et nos calculatrices intégrant une notion de "fichiers", TIGCC propose ces fonctions ANSI d'accès aux fichiers.
Ces fonctions étant implémentées sur la plupart des compilateurs C, les utiliser pour développer vos programmes améliorera leur portabilité vers d'autres plates-formes.
Ou plutôt, comme cela se fait le plus souvent, elles facilitent le portage d'un programme d'une autre plate-forme vers nos calculatrices, de même qu'elles simplifient les choses aux personnes ayant déjà développé sur d'autres plates-formes, et souhaitant se mettre à la programmation sur TI.
Cela dit, ces fonctions n'étant pas présentes sur TI, si vous les utilisez dans votre programme, TIGCC devra les copier au sein de celui-ci ; ce qui augmentera sa taille de manière relativement conséquente.
La troisième partie de ce chapître sera consacrée à ce type de fonctions... Mais nous verrons qu'il existe une autre solution, qui, même si elle est moins portable, est souvent plus adaptée pour nos calculatrices.
Manipulation de la VAT I: présentation : Accès aux fichiers A: pourquoi accèder à des fichiers ? B: Méthode ANSI d'accès aux fichiers => fopen, fwrite, fread, fseek, fclose => Avantages (portabilité, facilité) => Inconvénients (sur TI : lourd, grossi la taille du programme) C: La VAT => Variable Allocation Table (Plus ou moins équivalent à la FAT sur PC) => Accès direct à la mémoire => Pourquoi c'est la méthode préférée sur TI II:\ Accès aux fichiers avec les fonctions ANSI => fopen, fclose, feof => Par caractères : fgetc, fputc => Par blocs : fread, fwrite III:\ Rechercher des fichiers dans la VAT => Rechercher un fichier par son nom => /!\ SYM_STR => Parcourir toute la VAT, à la recherche d'un fichier de nom donné, dont on ne connait pas le répertoire => Parcourir toute la VAT, à la recherche des fichiers d'un type particulier + Lire l'extension d'un fichier OTH IV:\ Lecture, écriture => Accès direct en mémoire => Attention, bien entendu, possible uniquement si variable en RAM V:\ Quelques fonctions utiles en plus => Attention à la version de ROM nécessaire (Pas mal de fonctions ne tournant que sous AMS >= 2.0x)