Onwebcreations.Net  
Onwebcreations.Net
 
Programmation
Services Gratuits
Codes Sources
Divertissements
   

  Programmation C Haut de page

Communication avec des fichiers
Communiquer avec des fichiers peut être intéressant pour y stocker durablement des informations.
Un fichier n'est rien d'autre qu'une masse plus ou moins importante de données, conservée en permanence sur un certain support.
On peut se représenter un fichier comme un gigantesque tableau permanant, dans lequel, un programme peut lire et écrire des données. La comparaison avec un tableau implique qu'un fichier doit contenir des éléments de même nature, donc de contenu homogène. En fait, contrairement à d'autres langages, le contenu d'un fichier C n'est pas structuré à l'avance. Au contraire, ses données sont simplement rangées sous la forme d'une suite continue de caractères (octets). C'est pourquoi un fichier est parfois désigné par le terme "flux de données". Chaque octet contenant un caractère pris individuellement peut être localisé dans le fichier via un index. Ainsi, le premier caractère d'un fichier a la position 0, le second la position 1, jusqu'au n ème caractère ayant pour position n-1. Bien qu'un fichier soit donc fondamentalement considéré comme une suite non structurée d'octets, il incombe au programmeur de créer une structure de fichier telle que les données soient gérées comme il l'entend. Pour cela il dispose de toute une série de fonctions adaptées, qui lui permettent de manipuler des données de toutes dimensions et de tout type.

Deux niveaux permettant la communication avec un fichier, le bas niveau et le haut niveau. Le bas niveau emploie des méthodes d'accès élémentaires, fondées sur des fonctions qui s'appuient directement sur des routines correspondantes du système d'exploitation. Les opérations de bas niveau  dépendent directement du système d'exploitation, et par conséquent ne font pas partie du standard ANSI. Le haut niveau est fondé sur des fonctions prédéfinies, indépendantes du système d'exploitation, et implémentées sur des fonctions de bas niveau. Nous traiterons uniquement le haut niveau, étant plus facile et indépendant du système d'exploitation.

Les trois étapes

  • Ouverture du fichier
  • Traitement (lecture/écriture)
  • Fermeture du fichier

L'ouverture du fichier se fait de la manière suivante :

FILE *fp; // déclaration d'une variable type pointeur fichier
fp = fopen(<arg1>,<arg2>); // Ouverture du fichier : 2 arguments à renseigner

La fonction fopen(); permettant l'ouverture d'un flux de données attend deux arguments :

  • <arg1> : Le fichier à ouvrir (adresse)
  • <arg2> : Le mode d'ouverture

Modes d'ouverture :

MODE DESCRIPTION
r Ouvre en lecture seule.
Renvoie
NULL si le fichier n'existe pas
w Ouvre en écriture seule.
Le fichier est créé s'il n'existe pas
a Ouvre en écriture seule, curseur en fin de fichier
r+ Ouvre en lecture et écriture.
Renvoie
NULL si le fichier n'existe pas
w+ Ouvre en lecture et écriture, le fichier est créé s'il n'existe pas.
Si il existe déjà, son contenu est écrasé.
a+ Ouvre le fichier en lecture et écriture, curseur placé à la fin de celui-ci. Si le fichier n'existe pas, il est créé.

Exemple :
FILE *fp;
fp = fopen("fichier.dat","w+"); // Ouverture du fichier nommé "fichier.dat" en lecture & écriture

Vous pouvez travailler sur un fichier uniquement lorsque celui-ci est ouvert, tout en tenant compte des restrictions imposées par le mode d'ouverture. N'oubliez pas de fermer le fichier à l'issue de ce travail par cette instruction :

fclose(fp); // fp désigne le pointeur fichier déclaré précédemment

ATTENTION :
La déclaration de la variable tampon doit se faire en début de programme, avant la déclaration des variables ordinaires (int, char, etc.)
En cas de traitement sur des fichiers partagés, concevez vos programmes afin que le temps d'ouverture d'un fichier soit le plus court possible.




 



[ << Page précédente | Page suivante >> ]


 
    Haut de page
© Onwebcreations.Net : Programmation & Services Internet
Accessible aussi par : Services-Gratuits-Webmasters.com
Contacter le suppport technique
Internaute(s) actuellement sur le site.