Gestion des fichiers en assembleur sur Atari ST
Ouvrir un fichier
Cette étape consiste à demander à avoir accès à un fichier. Vous récupérez ainsi un handle sur ce fichier si celui-ci est accessible.
Cet handle sera utilisable ensuite pour lire/ecrire,. des données dans ce fichier se déplacer, ..et ceci tant que le fichier restera ouvert.
Si le fichier n'est pas accessible, vous recevrez un code erreur vous précisant ce qui n'a pas permis d'accéder à ce fichier.
Il existe deux fonctions permettant d'ouvrir un fichier:
- Soit il n'existe pas ou vous voulez écraser le fichier précédent: vous allez utiliser la fonction Fcreate() ( $3C ) du GEMDOS
- Soit il existe déjà, et dans ce cas, vous utiliser la fonction Fopen ($3D) du GEMDOS
Lire ou écrire dans un fichier
Avant de lire ou d'écrire dans un fichier, il faut s'assurer d'avoir ouvert ce fichier.
Pour lire le contenu d'un fichier, utilisez la fonction Fread() ($3F) du GEMDOS
Pour écrire, ce sera la fonction Fwrite() ($40) du GEMDOS
Vous n'êtes pas obligé de lire tout le contenu d'un fichier, mais vous limiter qu'à une partie. Il sera d'ailleurs possible d'indiquer la position de départ de la lecture/écriture dans le fichier en utilisant la fonction Fseek ($42).
Après avoir terminé de lire ou d'écrire dans un fichier, il est impératif de le refermer !
Fermer l'accès à un fichier
Cette opération est indispensable si vous ne voulez pas perdre vos données. Suite à la création d'un nouveau fichier, sans cette fermeture, le fichier serait positionné à 0 octet d'occuper. Bref vous aurez perdu vos données.
La fonction à utiliser est Fclose() ($3E) du GEMDOS
Taille d'un fichier
Pour connaître la taille d'un fichier,
- On pourra utiliser la DTA avec les fonctions fsfirst et fsnext du GEMDOS si le fichier n'est pas déjà ouvert.
- Ou alors, si le fichier est déjà ouvert, se positionner à la fin du fichier avec la fonction Fseek() ( $42 ) du gemdos:
Avec handle, le handle du fichier précédemment ouvert.
d0.l contient dans ce cas la taille du fichier.
Exemples
- Exemple de lecture du contenu d'un fichier.
- Pour aller plus loin, quelques exemples de lecture de formats de fichiers images.