Fichier = collection organisée d'infos

   de même nature

   pouvant subir le même traitement

® stockage d'infos

 

Données

   volatiles

   Ex : résultat qui s'affiche

   persistantes

   Ex : tables d'un SGBD

 

But : utiliser des fichiers externes comme données du pb

Ex : redirection d'un fichier de données vers un exécutable :

   données.dat > a.out

 

Objectif

   organisation des fichiers

   traitements de base des fichiers : algo, C++, COBOL

 

COBOL : gestion, finances, assurances

 

Fichiers non structurés : fichiers texte

= collection d'infos de nature diffte

Analyse  caractère par caractère

           ligne / ligne

           buffer (d'une taille donnée) par buffer

      puis retravail caractère par caractère

 

Fichiers structurés = collection d'infos de même nature = articles

® COBOL

= suite logique d'enregistrements de type identique ou non

Ex : table = suite d'enregistrements avec des types variés

·        séquentiels

Enregistrements utilisés les uns après les autres (même fonctionnement que les bandes magnétiques)

·        relatifs : accès direct

Enregistrements de longueur contante

Þ calaculer la place de l'enreg. recherché puis accès direct

·        séquentiels indexés

Structure de donnée index

Un mécanisme calcule la place de l'enreg. recherché

 

Fichier physique Û adresse physique du fichier dans la mémoire

 

Fichier logique

   Û descripteur de fichier =

      variable associée au fichier physique

      fichier manipulé (on n'utilise pas le fichier physique)

 

Opés sur les fichiers

 

ouvrir(descripteur, nomfic, mode)

Mode

* lecture Û (D)

* écriture Û (R)

* lecture-écriture Û (D/0R)

Attn : l'ouverture en écriture efface le fichier s'il existe

Rq : on peut écrire à la fin

 

lire(descr, nom-variable)  Û  nom-variable ¬ lire(descr)

 

écrire(descr, valeur)

 

fermer (descr)

 

eof(descr) retourne booléen

Þ test de fin de fichier "End Of File"

 

+ Opé de positionnement dans le fichier

 

Accès séquentiel

Accès à un seul article à la fois et dans l'ordre

Chaque lire(descr, val) fait avancer d'un article (d'une case)

art. 1

art. 2

art. 3

 

 

                              lire(descr, val)

ƒ lire(descr, val)

        lire(descr, val)

ouvrir(descr, fichierphysique, lecture)

 

Déclarer un descripteur de fichier

variables     nom-descr : descripteur de fichier

 

C++

 

# include <fstream.h>

 

Ouverture en mode lecture associé au fic physique

ifstream nom-descr ("nom-fic-physique") ;

 

Ouverture en mode écriture associé au fic physique

ofstream nom-descr("nom-fic-physique");

 

Lecture

nom-descr >> val;

 

Test de fin de fichier

fic.eof()

 

Ecriture

nom-descr << val;