Gestion de Fichiers Concepts Fondamentaux et Fichiers dEnregistrements.

Slides:



Advertisements
Présentations similaires
Stockage de données.
Advertisements

Créer une base de données MySQL
Créer une base de données MySQL Et création de tables, enregistrements, interaction avec PHP.
Gestion de FICHIERS.
Le publipostage La fonction de fusion permet de créer des documents identiques dans les grandes lignes que l’on personnalise automatiquement à chaque destinataires.
Exercice 1 1 (père) et 1 (fils) 1 (père) et 0 (fils)
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
ROLE DES DIFFERENTS ELEMENTS PRESENTATION DU LOGICIEL
Formation Microsoft® Office Access 2007
Nous allons vous présenter: - Photoshop - Algorithme et programmation
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
Langage C :acquisition des connaissances sous forme de TP.
Connexion en mode application. Bases de données - Yann Loyer2 Connexion en mode application Pour tout type dutilisateurs : –passif, actif, gérant Permettre.
TP : Fichiers et Tableaux Séance N°2 Avril Application de Gestion de stock Partie 1 : les fichiers 1 Création dun fichier de 20 articles.
Les instructions PHP pour l'accès à une base de données MySql
Programme de baccalauréat en informatique Algorithmique et programmation IFT-1001 Thierry EUDE Hatem Mahbouli Laboratoire #12 Département dinformatique.
TRAITEMENT DE STRUCTURES
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
FICHIERS.
Bases de la programmation en C++ 1 Les enchaînementsdinstruction Séquentiels. Exécutions dinstructions les unes à la suite des autres. Instructions séparées.
Les fichiers binaires en C++
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Fichiers et entrées / sorties Sauvegarde des programmes dans des fichiers. Compilation. Lecture et écriture de données dans des fichiers. Formatage des.
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Introduction et Motivation
Operations de Base en C++ sur les Fichiers
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Les concepts et les méthodes des bases de données
8PRO107 Éléments de programmation
1 La récursion. Nous avons vu qu'un programme est constitué d'un ensemble de fonctions. Il est possible pour une fonction donnée d'appeler une autre fonction.
Les Fichiers.
CSI 1502 Principes fondamentaux de conception de logiciels
Open Office Créer un graphique sous Open Office. Démarrage d' Open Office.
Structures de données IFT-2000 Abder Alikacem Semaine 12 (2 ième partie) Les B-arbres Département d’informatique et de génie logiciel Édition septembre.
Procédures et fonctions
Structures de données IFT-2000 Abder Alikacem Semaine 11, 1 ère partie Les B-arbres Département dinformatique et de génie logiciel Édition septembre 2009.
Structures alternative et répétitive
Le Club informatique de l’APRUM 17 mars 2011 Les bases de données.
Les fichiers texte en C++
L’essentiel du langage C
et quelques rappels sur certains éléments du langage C
1 FICHIERS. 2 Les Fichiers  Les "entrées-sorties conversationnelles" échangent des informations entre le programme et l'utilisateur.  Le terme de fichier.
+ -- La mesure du champ magnétique au niveau des fonds océaniques donne des valeurs >0 (+)(champ magnétique normal) ou < 0 (-) (champ magnétique inverse).
8PRO107 Éléments de programmation Les chaînes de caractères.
Argc et argv Utilisation des paramètres de la ligne de commande.
Créer des packages.
Labo 4 : Les structures et les entrées et sorties
Les modules. Modules Un module est un ensemble de définitions de constantes, de variables et de fonctions réutilisables de projet en projet. Le langage.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Modification dynamique
 Requêtes MySQL en PHP Introduction
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
La programmation système
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
1 Programmation en C++ Marianne Morris. 2 Intro générale à la programmation On a déjà étudié le langage assembleur Langage de bas niveau Meilleur que.
Les fichiers 1ère partie
1 Les caractères En informatique, les caractères sont très importants puisqu’ils sont utilisés pour la communication personne-machine. Puisque les ordinateurs.
Conception de Programmes - IUT de Paris - 1ère année Cours 2 – Références et passage de paramètres Les Références –Introduction aux références.
Conception de Site Webs Interactifs Cours 7 Patrick Reuter
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Matière Sélectionnée: Triage Externe, Join à Hachage, … Chapitres 13—15: 13.1—13.5, 14.4,
Introduction à l’utilitaire
Initiation aux bases de données et à la programmation événementielle
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
Plan… -Introduction et motivations : -Qu'est-ce que le traitement de fichiers ? -Terminologie et définitions fondamentales des structures de fichiers :
Chapitre 1: Ordinateur & système d’exploitation
Transcription de la présentation:

Gestion de Fichiers Concepts Fondamentaux et Fichiers dEnregistrements

2 Plan du cours daujourdhui Concepts fondamentaux Champ et organisation des enregistrements Gestion des fichiers denregistrements Accès aux enregistrements Accès direct versus accès séquentiel Points selectionés de FZR ;

3 Champ et enregistrements Jusquà présent nous avons conçu les fichiers comme un train discontinu de données. Maintenant nous allons étudier les fichiers comme une collection denregistrements (records) composés de champs (fields). Le champ est lunité de base des données. Un champ contient une valeur de donnée unique. Plusieurs champs sont organisés en enregistrements.

4 Champ et enregistrements (suite) Considérons le programme ci-bas (Détails dans FZR) #include main() { Person p; fstream infile; Outfile.open(personnes.txt",ios:out); while (1) { cin >> p; //Lire les champs de la personne if (strlen(p.LastName)==0) break; Outfile << p; //Ecrire les champs de la personne } Outfile.close(); }

5 Champ et enregistrements (suite) Considérons le fichier dentrée suivant pour le programme Iluju Kiringa Joe Alisson 180 Lees 800 King Ottawa Toronto On On K1S5J6 M4Y1R6 Le fichier de sortie de notre programme contiendra Iluju Kiringa180 LeesOttawaOnK1S5J6JoeAlisson800 KingTorontoOnM4Y1R6 Ainsi nous avons obtenu un train continu doctets quil est difficile de comprendre ! Pour comprende linfo initiale, nous avons besoin dorganiser notre train doctets en enregistrements.

6 Champ et enregistrements (suite) Dans notre exemple, notre fichier de sortie contient des infos sur des personnes. Et nous avons donc besoin dune organisation de fichier qui nous rappèle la signification originale de nos octets, à savoir des infos sur des personnes. De là limportance des champs constituant une personne. Un champs est de ce point de vue la plus petite unité significative dinformation dans un fichier.

7 Structure des champs (Fig. 4.3 dans FZR) Fixer la longueur des champs: Champs à longueur fixe Enregistrement à longueur fixe Accès facile aux données (simple arithmétique) Désavantage: perte despace en fin de champs Débuter chaque champ par un indicateur de longeur: Utiliser comme indicateur de longeur pour des champs courts (<=256 octets) Désavantage: larithmétique des adresse devient difficile pour ds champs longs (>=256 octets)

8 Structure des champs Séparer les champs par des délimiteurs: Le délimiteur doit être judicieusement choisi Le délimiteur est placé à la fin de chaque champ Désavantage: possible confusion du délimiteur avec un octet significatif Utiliser des expression Clé=Valeur pour identifier chaque champ: Prénom=iluju|nom=kiringa| ….|code=K1S5J6 Ce type dorganisation est appelé auto-descriptif Désavantage: beaucoup despace est allouée aux clés

9 Structure des enregistrements (Fig. 4.5) Organiser les données en champs ne suffit pas encore. Pourquoi? Une organisation du fichier en enregistrements savère nécessaire. Plusieurs methodes existent pour regrouper les champs en enregistrements. Elles sont similaires aux méthodes dorganisation des champs déjà vues. Les enregistrements sont stockés dans les fichiers, mais sont appelés objets lorsquils résident en mémoire principale. En C++, nous utiliserons une déclaration de classe pour décrire les objets en mémoire principale.

10 Structure des enregistrements (suite) Enregisrements à longueur fixe: Cependant, fixer la longueur dun enregistrements nentraîne pas un nombre fixe de champs ! En fixant la longueur des champs, on fixe aussi celle des enregistrements On peut avoir un enreg. à longueur fixe avec des champs de longueur variable ou un # de champs variable. Enregistrements à nombre de champs fixe: On peut fixer le # de champs quun enreg. peut contenir. Reconnaître un enreg. se fera simplement en comptant le # de champs lus: il faut donc compter modulo ce nombre.

11 Structure des enregistrements (suite) Enregistrement à indicateur de longueur: Débuter chaque enreg. par un indicateur de longueur. Très utile pour des enreg.s à longueur variable. Enregistrement à index dadresses: Utiliser un fichier index pour stocker les adresses des enreg.s du fichier de données. Les adresses stockés sont en fait des décalages de chaque enreg. par rapport au début du fichier. Enregistrements à délimiteur: Placer un délimiteur à la fin de chaque enreg. Souvent lextrémité d'une ligne (« end-of-line ») est utilisé; en UNIX cest «\n».

12 Structure des enregistrements (suite) Aucune des méthode dorganisation des enreg.s nest idéale pour tous les contextes. Tout dépend de la nature des donnés à stocker. Enreg. avec indicateur de longueur et délimiteur de champs: Ecriture dans un fichier: int WritePerson (ostream & stream, Person &p) { char buffer[200]; …. srtcat(buffer, p.Province) ; strcat(buffer,|) ; …. short length = strlen(buffer); // Calculer la longueur de lenreg. stream.write(&length, sizeof(length)); // Ecrire la longueur au début stream.write(&buffer,length); // Ecrire lenreg. return 1; }

13 Structure des enregistrements (suite) Enreg. avec indicateur de longueur et délimiteur de champs: Lecture dun fichier: int ReadPerson (istream & stream, Person &p) { short length; stream.read(&length,sizeof(length)); //Lire la longueur de lenreg. char * buffer = new char[length+1]; // Créer un tampon stream.read(&buffer, length); // Lire lenreg. dans le tampon buffer[length] = 0; // Terminer le tampon avec la séquence null istringstream strbuff (buffer); // Créer un string stream (???) // Consulter Lipmann et Lajoie sur in-memory input-output strbuff >> p; // Utiliser lop. dextraction (saturé) return 1; }

14 Structure des enregistrements (suite) Un cliché du fichier (« file dump ») permet de voir la configuration des octets dudit fichier. Supposez que la longueur dun enreg. est 40 et que ce « 40 » est stocké comme nombre. Sa représentation dans le fichier differera selon que on le prend pour une séquence de caractères (ASCII) ou un nombre: séquence: 40Ames|Mary|123 … ASCII: \0 ( Ames | Mary | 123 … Raison: 40 décimal = 0028 hex. stocké en 2 octets = \0 ( en ASCII Les ASCII sont lisibles; les nombres, étant en binaire, ne le sont pas. Dans la pratique, vous trouverez ce mélange de types de données différents dans un même fichier.

15 Gestion des fichiers denregistrements Puisque lenregistrement est maintenant consideré comme la quantité dinformation à lire et à écrire, il est important de ne pas confondre les enregistrements. Pour ce faire, les clés primaires sont nécessaires. Une clé primaire identifie exactement un enreg. Une clé primaire ne devrait jamaiscontenir de données. Une clé secondaire identifie également un enreg., mais de manière non unique.

16 Gestion des fichiers denregistrements: accès séquentiel versus accès direct Accès séquentiel: Rechercher les enregistrements lun après lautre en séquence jusquà ce que un appariement (matching) soit trouvé. Approprié lorsque le fichier est court (peu denreg.s) Accès direct: Sauter directement à lendoit approprié dans le fichier. Cela ne prend donc comme temp que O(1) ! Cela nest possible que lorsque lon connait le numéro relatif denreg. (relative record number - RRN) de lenreg. cherché. Le premier enreg. a un RRN 0, le 2ème 1, etc.

17 Accès direct par le RRN Exigeance: enregistrements à longueur fixe Exemple: RRN = 3 -- càd le 4ème enregistrement longueur denreg. = 30 décalage (offset) = 20 x 3 = 60 Allez directement à un octet donnée en faisant de la recherche (seeking): En C++: utiliser les pointeurs seekg et seekp fichier_source.seekg(décalage,origine); fichier_source.seekp(décalage,origine); Signification: aller à loctet décalage dans le fichier fichier_source; Origine = ios::beg, ios::cur, ios::end, etc.