bonjour tout le monde
voila,on vas bientot entamer un cours sur les fichiers sequentiels et j'aimerais bien avoir un petit apersus la dessus
alors veillez m'aider a comprendre ce que c'est?
-----
bonjour tout le monde
voila,on vas bientot entamer un cours sur les fichiers sequentiels et j'aimerais bien avoir un petit apersus la dessus
alors veillez m'aider a comprendre ce que c'est?
Si tu attendais d'abord d'avoir les cours, de les travailler. Après tu pourras poser des questions précises sur les points que tu n'auras pas compris.
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac
En effet, c'est plus intéressant ainsi.
mais j'aimerais tout de même avoir certaines notions de base avant d'entamer ca en cours
Un fichier séquentiel est un fichier dont l'accès est séquentiel, c'est à dire ordonné. En règle générale (je ne connais pas d'autres cas), cet ordre croit du premier enregistrement au dernier.
Ainsi, pour lire le dernier enregistrement, il faut lire l'ensemble du fichier.
Et une fois ce dernier enregistrement lu, si l'on souhaite lire le premier, il faut fermer le fichier, et le rouvrir pour lire le premier.
Ce type d'accès est nécessaire pour les supports de fichier séquentiel (comme les bandes magnétiques), mais il est aussi très souvent utilisé par ailleurs, notamment pour les écritures "au fil de l'eau" dans un fichier ou sur une imprimante par exemple, et en règle générale pour un très grand nombre de fichier pour lesquels l'ordre des enregistrements est séquentiel.
:'( Plus j'apprends, et plus je mesure mon ignorance
Le fichier séquentiel s'oppose (entre autre) au fichier à accès direct, qu'on appelle aussi "accès aléatoire".
En séquentiel, les enregistrements se font à la suite les uns des autres et les champs qui constituent un enregistrement n'ont pas de longueur fixe, ce qui fait que les enregistrements n'ont également pas de longueur fixe. Il faut connaitre le séparateur qui sépare les champs et celui qui sépare les enregistrements. Pour retrouver un enregistrement dans un fichier il faut commencer par le premier jusqu'à ce que l'on trouve le critère de recherche.
Exemple de fichier séquentiel :
Pour retrouver les dates de la présidence de Jacques Chirac, il faut commencer par Pompidou.Code:Georges,Pompidou,1969,1974 Valéry, Giscard d'Estaing,1974,1981 François,Mitterand,1981,1995 Jacques, Chirac,1995,2007 Nicolas, Sarkozy,2007,2012
L'accès direct fonctionne d'une toute autre façon. On fixe le longueur des champs (par exemple 20 caractères pour le prénom, 20 pour le nom, 4 pour la date 'début' et 4 pour la date 'fin', ce qui fait que chaque enregistrement aura une longueur fixe de 48 octets. Ce qui va donner ceci :
Il suffit ensuite d'avoir un index (par exemple Pompidou=0 Giscard=1 Mitterand=2 Chirac=3 Sarkozy=4). Pour attaquer directement l'enregistrement concernant Jacques Chirac, on sait que le "pointeur" doit se positionner sur l'octet 48x3 + 1 = 145. Ainsi, on aura :Code:Georges Pompidou 19691974 Valéry Giscard d'Estaing 19741981 François Mitterand 19811995 Jacques Chirac 19952007 Nicolas Sarkozy 20072012
- le prénom de l'octet 145 à 164
- le nom de l'octet 165 à 184
- la date de début de l'octet 185 à 188
- et la date de fin de l'octet 189 à 192
Avantages et inconvénients du séquentiel par rapport à l'accès direct
- avantages : le séquentiel occupe moins de place (pas de blancs) et on n'a pas à se casser la tête pour calculer la longueur maximum envisageable d'un champ, ce qui est impératif en accès direct (imaginons les implications d'un espace conçu trop court pour stocker de longues URL).
- Inconvénient du séquentiel par rapport à l'accès direct : la lenteur sur une grosse table lorsque ce que l'on cherche se trouve à la fin.
Les fichiers .ini chers à Microsoft depuis la version 1 sont toujours écrits en séquentiel.
Désolé d'avoir été un peu long, mais maintenant tu en sauras un peu plus.
Merci a tout les deux
Non TiClic,tu n'etait pas du tout long,au contraire.
Donc,si j'ai bien compris.Un fichier est une structure de données dont les éléments sont des enregistrements du même type(fixe)dans le cas du direct,et différents dans le cas du séquentiel
Et dans le direct on perd de l'espace et on gagne en temps et facilité de manipulation.par contre dans le séquentiel on gagne de l'espace mémoire et on perd en temps d'exécution et en facilité de manipulation.
C'est ca?
Bonne synthèse. Tu as parfaitement compris la différence entre ces deux types de fichiers de données.
Hummm... rien n'oblige à ce que les enregistrements soient de tailles identiques dans un fichier à accès direct... Il suffit de connaitre la structuration des enregistrements dans le fichier.
Ce qui différencie principalement un accès direct à un accès séquentiel est le fait que dans le premier cas, l'adresse d'une opération sur le fichier (lecture ou écriture) peut être décidée par le programme alors que dans l'autre cas, elle ne peut prendre que deux valeurs : pointeur courant de lecture (qui avance au fur et à mesure de la lecture) ou fin de fichier (écriture).
:'( Plus j'apprends, et plus je mesure mon ignorance
Hummm... rien n'oblige à ce que les enregistrements soient de tailles identiques dans un fichier à accès direct... Il suffit de connaitre la structuration des enregistrements dans le fichier.
ce n'est pas ce que j'ai compris moi!Dans les fichers a accés sequentiels oui,les enreg sont differents.mais dans l'autre cas,j'ai limpression que les enregistrements sont tous identiques,enfin c'est ce que je constaté dans les exemples qu'a donné TiClic.
Pour tenter dissiper un malentendu :
- TiClic donne des exemples de structures de fichier adaptées au mode d'accès séquentiel et direct
- quand à moi, je te donne la définition du mode d'accès, séquentiel ou direct (qui est le mode de positionnement dans un fichier pour l'écriture et la lecture).
Un fichier à accès direct peut très bien se composer d'enregistrements de tailles variables, voire, d'enregistrement hétérogènes, même si des enregistrements de taille fixe représentent la majorité des cas, car c'est le mode de calcul de la position dans le fichier qui est la plus aisée (comme dans le calcul donné par TiClic). On pourrait très bien, par exemple, concevoir un fichier constitué d'une liste chaine d'éléments hétérogènes (de taille et de contenu variable).
:'( Plus j'apprends, et plus je mesure mon ignorance
Dans la déclaration des types, on doit déclarer la longueur de chaque champ et la longueur d'un type (alias "enregistrement") correspond à la somme des longueurs de ses champs.
Ce dont je parle se trouve ici .
Je n'ai jamais pratiqué le semi-indexé ou autre chose et ne parle que des fichiers à accès direct. Mais je suis preneur si ce type de fichier a changé de nom, car j'ai décroché en 1993.
TiClic, relis le deuxième paragraphe du lien que tu m'as fournis, tu y verras l'exact exemple que j'ai fourni (arbre, graphe, ...).
La structuration du fichier est une chose, le mode d'accès en est une autre, et les choix de structure en fonction du mode d'accès ne sont effectivement pas faits au hasard, notamment à cause des contraintes de chaque mode d'accès.
Quand je parle de mode d'accès, je me réfère aux instructions d'accès aux fichiers, notamment celles proposées par POSIX : http://fr.wikibooks.org/wiki/Program...POSIX:Fichiers
Cordialement.
:'( Plus j'apprends, et plus je mesure mon ignorance
Désolé, le temps de taper ma réponse a été intercepté par une main en moins. D'où le manque de réactivité.
C'est exact. On appelait cela du semi-indexé lorsque j'ai pris ma retraite (1993). Mais il était un peu plus lent que le direct dans la mesure où il fallait lire dans une table d'allocation les points d'entrée des enregistrements et la longueur de ses champs. Sur un recherche mono-critère on ne le sentait pas trop, sur une recherche multi-critères ça devenait discutable, en base de données avec des relations croisées entre les tables ça n'était plus du tout compétitif.Un fichier à accès direct peut très bien se composer d'enregistrements de tailles variables
Une prolongation de ce fil m'intéresse au plus haut point, car il y a peut-être un tas de nouveautés par rapport aux traitements automatisés des années 80 (antiquité).
Bon, ça va trop vite pour moi. Alors je fais le + court possible sans faire dans le SMS
Ta référence aux types de fichiers n'est-elle pas issue du Cobol (dont je n'ai, bien heureusement, que très peu de souvenirs) ?
:'( Plus j'apprends, et plus je mesure mon ignorance
vraiment je n'arrive plus a suivre
Je crois qu'il vaut mieux aller étape par étape. que je suive le conseille de JPL et attendre mon cours l'étudier a tette reposée et on verra bien.