Académique Documents
Professionnel Documents
Culture Documents
1. Généralités
1.1 . Introduction
Les types de données étudiés jusqu’ici servaient à décrire des
informations. Ces informations étaient toujours perdues quand nous
éteignions l’ordinateur. Par exemple si on utilise un tableau
d’enregistrements d’étudiants pour gérer la scolarité, il faut à chaque
exécution saisir les éléments du tableau.
Dans ce chapitre, nous allons étudier comment remédier à cet
inconvénient en créant et en utilisant les fichiers.
Définition : Un fichier est une suite éventuellement vide de
composants de même type stockés sur une mémoire secondaire
(disquette, disque dur, CD, etc.).
1.1 . Introduction
Il existe en permanence, est indépendant de tout traitement et est
accessible par un ou plusieurs programmes.
Il permet :
• de sauvegarder l’information entre plusieurs exécutions,
• de faire communiquer entre eux plusieurs programmes, qu’ils
soient sur une machine ou sur des machines différentes,
• de transmettre des données entre plusieurs machines
différentes.
1.2. Les fichiers séquentiels
Un fichier à organisation séquentielle est composé d’articles
consécutifs sur la mémoire de masse. Ces articles sont rangés
dans l’ordre de leur enregistrement. Un fichier séquentiel est
facile à implémenter mais présente quelques inconvénients :
• l’accès est lent pour de grands fichiers,
• l’ajout d’un article n’est possible qu’en fin de fichier.
1.2.1 : Organisation et Accès
L’organisation définit la manière dont les articles sont disposés
sur le support. On distingue trois types d’organisations :
• l’organisation séquentielle qui ne permet que l’accès
séquentiel. On accède au fichier dans l’ordre d’enregistrement
des articles,
• l’organisation directe qui permet l’accès direct. On accède
directement à un élément sans passer par les articles
précédents,
• l’organisation séquentielle indexée qui permet l’accès
séquentiel et l’accès direct.
1.2.2Caractérisations générales d’un fichier
int main ( ) {
FILE * fich ;
int nb ;
char buf [20] ;
l’affichage :
fich = fopen ("toto" , "w”) ;
if ( fich == NULL){ Nb de caractères écrits : 5
printf ("Erreur de fopen \n ») ; et d’autre part, à l’écriture
return (1) ; du fichier toto qui contient
}
/* L ‘ouvertures ' est bien passée */
alors :Bonjo c-à-d les 5
/* mise en place dans buf de la chaîne à écrire */ premiers caractères de la
strcpy ( buf , "Bonjour " ) ; chaîne Bonjour .
/* écriture de 5 caractères de buf */
nb = fwrite ( buf , sizeof (char) , 5 , fich ) ;
printf ( "Nb de caractères écrits : %d\n" ,nb ) ;
fclose(fich) ;
}
2.2.2 Lecture binaire
int main( ){
FILE * fich ;
int nb ;
char buf [20] ;
int main( ){
FILE * fich ;
int nb ;
char buf [20] ;
#include<stdio.h>
int main ( ) {
fputs ( "Coucou\n" , stdout) ;
}
2.4 : Lecture/écriture formatée
Les lectures et écritures formatées travaillent selon un format identique à
celui utilisé par printf.
#include<stdio.h>
int main ( ) {
int i ;
char buf [20];