Les langages de programmation permettent de:
Le système d'exploitation est responsable de la gestion des fichiers d'un ordinateur. Toute opération sur un fichier se fait donc nécessairement par l'intermédiaire du système d'exploitation. Lorsqu'un programme effectue une opération sur un fichier il faut que le système d'exploitation autorise cette opération, sans quoi il se produira une erreur d'accès. Voilà quelques unes des erreurs les plus fréquentes:
L'accès à un fichier par programmation fonctionne toujours selon le même principe:
Ouvrir un fichier sert (entre autres) à informer le système d'exploitation que l'on a l'intention d'y accéder. C'est à ce moment là que le système peut refuser l'accès au fichier, ce qui provoquera une erreur d'exécution du programme.
La fermeture d'un fichier sert (entre autres) à signaler au système d'exploitation que le fichier n'est plus utilisé par le programme, ce qui permettra à un autre programme (éventuellement d'un autre utilisateur) d'y accéder.
Il y a deux manières d'accéder à un fichier par programmation : l'accès direct et l'accès séquentiel.
L'accès direct n'est possible que pour des fichiers définis comme une suite de blocs de taille fixe que l'on appelle enregistrements. Il n'est donc possible que pour les fichiers structurés (voir figure).
L'accès direct signifie qu'il est possible d'accéder directement à un enregistrement à partir de sa position dans le fichier : lire le ième enregistrement du fichier ou le modifier. Ce type d'accès est par exemple adapté à la gestion des tables d'une base de données.
Dans l'accès séquentiel, une opération de lecture ou d'écriture se fait toujours juste après la dernière partie du fichier lue ou écrite (voir figure).
Les fichiers texte n'autorisent que ce type d'accès.
Les fichiers structurés quand à eux autorisent les deux types d'accès (séquentiel ou direct).
Vous comprendrez à présent pourquoi le fait d'appeler "fichiers séquentiels" les fichiers structurés est une source de confusion !
L'ouverture d'un fichier texte se fait en lecture, en écriture ou en ajout. Nous ne traiterons pas ici de l'ouverture en ajout.
Si le fichier est ouvert en lecture, il ne peut y avoir que des lectures jusqu'à la fermeture du fichier.
De même, si le fichier est ouvert en écriture, il ne peut y avoir que des écritures jusqu'à la fermeture du fichier.
Un fichier texte est normalement organisé en lignes. Les langages de programmation contiennent en général une instruction (ou une procédure) permettant de:
Pour ouvrir un fichier structuré, il n'est pas nécessaire de préciser si l'on veut ouvrir le fichier en lecture ou en écriture. En effet, avec un fichier structuré ces deux types d'opération (lecture et écriture) peuvent être mélangées dans n'importe quel ordre.
Si le fichier n'existe pas avant l'ouverture, il sera créé.
L'accès séquentiel dans un fichier structuré consiste à lire ou à écrire un enregistrement sans préciser sa position. La lecture ou l'écriture se fait nécessairement juste après le dernier enregistrement lu ou écrit. Sauf si le fichier vient juste d'être ouvert. Dans ce cas l'enregistrement lu ou écrit sera forcément le premier.
Dans l'accès direct on accède à un enregistrement par sa position dans le fichier. Il est par exemple possible de lire le 25ème enregistrement, puis de modifier le 122ème. On peut parcourir le fichier dans n'importe quel ordre.