q Un fichier binaire peut stocker n’importe quoi, que ce soit structuré ou non.
q Les fichiers binaires n’ont pas de structure apparente, ils représentent une suite de données (octets) écrites
les unes après les autres.
q Toutes les données sont représentées sous forme binaire. Les nombres sont convertis, et s’il y a du texte, il
apparaît comme tel mais non structuré. De même si on y voit un caractère, il se peut que ce soit un effet de
bord : la conversion d’un nombre donnant « par hasard » quelque chose de lisible via les codes ASCII ou
Unicode mais n’ayant aucun rapport. Pour résumer : les données d’un fichier binaire y sont écrites
exactement comme si elles sortaient de la mémoire : c’est la même représentation.
q La structure des enregistrements est dépendante de l’interprétation du programme. Les enregistrements
peuvent être de longueur fixe, mais collés les uns après les autres sans retour à la ligne.
q De ce fait, un fichier binaire ne doit pas être ouvert ou enregistré depuis un éditeur de texte : il est souvent
illisible. Seul le programme sachant le manipuler est apte à l’utiliser. Vous pouvez cependant utiliser un
éditeur héxadécimal.
q Le fichier peut être lu octet par octet, ou par bloc, ou entièrement, depuis n’importe quelle position, puisque
c’est vous qui définissez sa structure. Idem pour les enregistrements.
5. Les accès aux fichiers
a. Séquentiel
Le fichier séquentiel permet d’accéder aux données dans leur ordre d’écriture. Vous accédez aux données les unes
après les autres. Pour pouvoir accéder au millième enregistrement vous devez d’abord lire les 999 premiers (ce qui ne
veut pas dire que vous devez les interpréter). Les fichiers texte sont généralement des fichiers séquentiels, chaque
enregistrement étant représenté par une ligne.
Un fichier binaire peut très bien être séquentiel, puisque encore une fois c’est vous qui déterminez sa structure. Vous
pouvez décréter que les n premiers octets sont la description d’une figure géométrique de n faces, puis que les n
autres enregistrements représentent la longueur des faces, les angles, etc.
Il n’est pas possible de modifier directement l’enregistrement d’un fichier séquentiel. Vous pouvez rajouter un
enregistrement à la fin. Pour supprimer, vous pourrez utiliser un éditeur.
b. Accès direct
L’accès direct est aussi appelé aléatoire. Il n’y a rien de spécialement aléatoire de votre côté, mais contrairement à
l’accès séquentiel, vous pouvez sauter directement à l’endroit que vous désirez. Pour un fichier texte, ça pourrait être
le numéro d’enregistrement (de ligne). Pour un fichier binaire, c’est la position de l’octet souhaité.
c. Indexé
Dans un fichier indexé, les enregistrements sont identifiés par un index qui peut être un numéro ou une valeur
quelconque, un identifiant. La connaissance de cet identifiant permet d’accéder directement à l’enregistrement qu’il
référence. Les enregistrements sont souvent placés les uns à la suite des autres dans le fichier, comme en
séquentiel. Les index sont eux placés dans un tableau d’index, avec pour chaque index la position de
l’enregistrement correspondant dans le fichier. Un fichier indexé est donc un super mélange des deux précédents.
Les index peuvent être totalement indépendants, auquel cas il n’y a pas forcément de moyen de lire les
enregistrements sans connaître son index. Mais bien souvent, vous entendrez parler de séquentiel indexé : le fichier
est indexé, mais depuis un index, vous pouvez lire successivement tous les enregistrements suivants. Les index
peuvent être chaînés dans un sens, dans les deux, voire triés, etc. La notion de chaînage est l’un des sujets du
prochain chapitre.
d. Autre ?
Un langage comme le COBOL est le roi de la manipulation des fichiers, notamment en séquentiel indexé. Il serait plus
complexe, mais pas infaisable (pour les professeurs sadiques ou les étudiants masochistes) de décoder un fichier
MP3 dans ce langage.
- 5 -
© ENI Editions - All rigths reserved - Jonifar lina
149
q Les fichiers binaires n’ont pas de structure apparente, ils représentent une suite de données (octets) écrites
les unes après les autres.
q Toutes les données sont représentées sous forme binaire. Les nombres sont convertis, et s’il y a du texte, il
apparaît comme tel mais non structuré. De même si on y voit un caractère, il se peut que ce soit un effet de
bord : la conversion d’un nombre donnant « par hasard » quelque chose de lisible via les codes ASCII ou
Unicode mais n’ayant aucun rapport. Pour résumer : les données d’un fichier binaire y sont écrites
exactement comme si elles sortaient de la mémoire : c’est la même représentation.
q La structure des enregistrements est dépendante de l’interprétation du programme. Les enregistrements
peuvent être de longueur fixe, mais collés les uns après les autres sans retour à la ligne.
q De ce fait, un fichier binaire ne doit pas être ouvert ou enregistré depuis un éditeur de texte : il est souvent
illisible. Seul le programme sachant le manipuler est apte à l’utiliser. Vous pouvez cependant utiliser un
éditeur héxadécimal.
q Le fichier peut être lu octet par octet, ou par bloc, ou entièrement, depuis n’importe quelle position, puisque
c’est vous qui définissez sa structure. Idem pour les enregistrements.
5. Les accès aux fichiers
a. Séquentiel
Le fichier séquentiel permet d’accéder aux données dans leur ordre d’écriture. Vous accédez aux données les unes
après les autres. Pour pouvoir accéder au millième enregistrement vous devez d’abord lire les 999 premiers (ce qui ne
veut pas dire que vous devez les interpréter). Les fichiers texte sont généralement des fichiers séquentiels, chaque
enregistrement étant représenté par une ligne.
Un fichier binaire peut très bien être séquentiel, puisque encore une fois c’est vous qui déterminez sa structure. Vous
pouvez décréter que les n premiers octets sont la description d’une figure géométrique de n faces, puis que les n
autres enregistrements représentent la longueur des faces, les angles, etc.
Il n’est pas possible de modifier directement l’enregistrement d’un fichier séquentiel. Vous pouvez rajouter un
enregistrement à la fin. Pour supprimer, vous pourrez utiliser un éditeur.
b. Accès direct
L’accès direct est aussi appelé aléatoire. Il n’y a rien de spécialement aléatoire de votre côté, mais contrairement à
l’accès séquentiel, vous pouvez sauter directement à l’endroit que vous désirez. Pour un fichier texte, ça pourrait être
le numéro d’enregistrement (de ligne). Pour un fichier binaire, c’est la position de l’octet souhaité.
c. Indexé
Dans un fichier indexé, les enregistrements sont identifiés par un index qui peut être un numéro ou une valeur
quelconque, un identifiant. La connaissance de cet identifiant permet d’accéder directement à l’enregistrement qu’il
référence. Les enregistrements sont souvent placés les uns à la suite des autres dans le fichier, comme en
séquentiel. Les index sont eux placés dans un tableau d’index, avec pour chaque index la position de
l’enregistrement correspondant dans le fichier. Un fichier indexé est donc un super mélange des deux précédents.
Les index peuvent être totalement indépendants, auquel cas il n’y a pas forcément de moyen de lire les
enregistrements sans connaître son index. Mais bien souvent, vous entendrez parler de séquentiel indexé : le fichier
est indexé, mais depuis un index, vous pouvez lire successivement tous les enregistrements suivants. Les index
peuvent être chaînés dans un sens, dans les deux, voire triés, etc. La notion de chaînage est l’un des sujets du
prochain chapitre.
d. Autre ?
Un langage comme le COBOL est le roi de la manipulation des fichiers, notamment en séquentiel indexé. Il serait plus
complexe, mais pas infaisable (pour les professeurs sadiques ou les étudiants masochistes) de décoder un fichier
MP3 dans ce langage.
- 5 -
© ENI Editions - All rigths reserved - Jonifar lina
149
