Pour le moment, nous avons 2 types de fichiers:
- les fichiers texte
- les fichiers binaires
Dans les fichiers texte, on peut lire ou écrire séquentiellement, le sustème mémorisant la position actuelle à utiliser comme position de départ pour l'action suivante.
Dans les fichiers binaires, cela est possible également, mais on a aussi la possibilité de forcer le positionnement à une adresse absolue, exprimée en octets.
Dans les fichiers texte, on lit ou écrit des caractères ou des chaînes de caractères.
Dans un fichier binaire, on lit ou écrit des caractères créés à partir de valeurs numériques, soit individuelles, soit issues d'un tableau de valeurs numériques, soit d'une chaîne de caractères contenant la représentation hexa-décimale de valeurs numériques. En aucun cas, on ne peut lire ou écrire directement une chaîne de caractères.
Pour pouvoir lire ou écrire une chaîne de caractères à un endroit aléatoire d'un fichier, je propose la création d'un positionnement absolu pour un fichier texte, de la manière suivante:
FILE_POSITION N,P
qui agirait exactement comme FILEBIN_POSITION, mais sur un fichier texte. L'action le lecture et/ou écriture suivante utiliserait cette position comme point de départ.
Cette suggestion permettrait par exemple de gérer un fichier texte comme un fichier à accès relatif. Imaginons un fichier texte dont toutes les lignes ont la même longueur. n aurait ainsi accès à l'enregistrement x de la manière suivante:
FILE_POSITION N,(x%-1)*(long%+2)
FILE_READLN N,s$
Après cela, la variable s$ contiendrait la ligne x% d'un fichier texte dont tous les enregistrements ont la longueur long%.