On n’abordera pas ici la manière dont on peut attaquer des fichiers complexes (comme des bases de données), via des contrôles ad hoc. Ce point a été délibérément zappé du cours, pour des questions de temps et de redondances avec d’autres matières.
Ce petit chapitre a pour but plus limité, de vous fournir un outil simple et universel pour stocker et récupérer des données d’une exécution à une autre, au travers d’un genre de fichier qu’on a déjà dû vous présenter amplement en C : le fichier texte à accès séquentiel.
On peut également accéder aux fichiers en "accès direct" ; il existe aussi des fichiers dits "binaires", mais il faut faire vite, et on se concentrera ici sur le type le plus basique (mais pas le moins utile).
Pour plus de précisions, il n’est pas interdit de zieuter attentivement sur la gestion de fichiers un excellent cours d’algorithmique que je recommande vivement à ceux qui ne le connaissent pas..
1. Ouvrir et fermer un fichier
Pour ouvrir un fichier, vous devez connaître son nom (y compris le chemin d’accès), dire ce que vous voulez en faire (lire, écrire, ou ajouter ?) et lui attribuer un numéro arbitraire, dit numéro de canal. Cela donnera ainsi :
Open "C:\TextFile.txt" For Input As #1
Bien sûr, si vous utilisez plusieurs fichiers simultanément, il est impératif de leur attribuer chacun un numéro de canal différent… For Input signifie qu’on ouvre le fichier en lecture. Pour l’ouvrir en écriture, on utilisera For Output, et pour l’ouvrir en ajout, For Append.
Rappel : à l'ouverture, il faut choisir, on ne peut faire qu’une seule chose à la fois avec un fichier.
Et puis tant qu'on y est, et d'un même élan sublime, voici l'instruction de fermeture d'un fichier :
Close #i
où i est le numéro de canal du fichier à fermer.