Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

Cours de C – Séance dexercices 12 Octobre Exercice 5 Idem quexercice 1 : lire une ligne au clavier Sans limitation de la longueur de la ligne (utilisez.
PHP Accès au système de fichiers
Rappels C.
Gestion de FICHIERS.
C.
Suite à de nombreuses remarques concernant le projet de structures de données 'Gestion d'un Aéroport' , voici un polycopié de cours concernant la gestion.
FLSI602 Génie Informatique et Réseaux
Cours de C GTR 2003/ COURS DE PROGRAMMATION EN LANGAGE C ALBERT Arnauld.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Récursivité.
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
Introduction Langage C
PROGRAMMATION SCIENTIFIQUE EN C PRO Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.
FICHIERS.
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.
Lecture et écriture de données
/* */ /* **** btutil.c **** Contient les fonctions utilitaires du programme create_root() -- Obtient.
IFT Structures de données
SEANCE 10 Python Entrée et sortie de fichiers Lycée Louis Vincent Lundi 20 janvier
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
Operations de Base en C++ sur les Fichiers
Les Fichiers.
ÉLÉMENTS DE BASE UNIX.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.
LANGAGE C LP A2I IUT St DIE
Plan cours La notion de pointeur et d’adresse mémoire.
Les fichiers texte en C++
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
L’essentiel du langage C
Jean-Michel ILIE - novembre SIL - module M12 Programmation Internet en PHP SIL module M12 Jean-Michel Ilié IUT Paris 5 - département informatique.
Les pointeurs L'opérateur &.
Le langage C Rappel Pointeurs & Allocation de mémoire.
PHP 3° PARTIE : GESTION DE FICHIERS ET DE REPERTOIRES
et quelques rappels sur certains éléments du langage C
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
1 FICHIERS. 2 Les Fichiers  Les "entrées-sorties conversationnelles" échangent des informations entre le programme et l'utilisateur.  Le terme de fichier.
Autres éléments du langage
Communication avec l’environnement
Un survol du language C.
Labo 4 : Les structures et les entrées et sorties
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.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que l’on veut allouer. Le premier exemple: #include void main()
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Fiabilisation des lectures au clavier. Problèmes liés à scanf: rencontre de caractères invalides Sans arrêt prématuré: compte = scanf(``%d%c``;&n,&c);
Le Préprocesseur. Sujets abordés: Préprocesseur –Qu’est ce? –Qu’est ce qu’une directive? Les macros –Les définir, les redéfinir, les dé-définir –Les macros.
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.
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Les fichiers 1ère partie
6ième Classe (Mercredi, 17 novembre) CSI2572
Les entrées-sorties élémentaires
8PRO107 Éléments de programmation Les adresses et les pointeurs.
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
Langage de Programmation Orientée Objet : C++
Chapitre 9 Les caractères.
Algorithmique et langage C
1 Rappel et compléments de la programmation en langage C.
Informatique 2A Langage C 4ème séance
A quoi sert la programmation? - indispensable pour plusieurs métiers. - passion. But du cours: - suite du cours Prog. Imp. I - fichiers, pointeurs, modularité.
Accès aux fichiers en C.
Mini synthèse accès fichier en C
Un compteur de visiteurs pour la page d’accueil de notre site
Transcription de la présentation:

Les variables fichiers

Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique –Type d’accès(binaire ou formaté … distinction floue) –Adresse du buffer –Position dans le fichier –Indicateur d’erreur Trois fichiers/flux standard, ouvert par défaut: stdin, stdout et stderr

Ouverture/Fermeture d’un fichier Faire le lien entre le nom physique (chaîne de caractère, chemin absolu ou relatif) et le nom logique (nom du pointeur) Ouvrir dans le mode choisi (binaire, écriture, écraser, lecture,…) Se positionner au début de fichier fich = fopen(nom_physique, mode); TESTER si le fichier a été ouvert (pas null). fopen(nom, ``r``);  0 si le fichier n’existe pas. fopen(nom, ``w``);  0 si le chemin d’accès est faux. fclose(fich);

Mode d’ouverture r ouverture d’un fichier texte en lecture w crée un fichier texte en écriture, écrase le contenu précédent si le fichier existait. a ajoute: ouvre ou crée un fichier texte et se positionne en écriture à la fin du fichier. r+ ouvre un fichier en mode mise à jour (lecture et écriture) w+ crée un fichier texte en mode mise à jour, écrase le contenu précédent si le fichier existait. a+ ajoute, ouvre ou crée un fichier texte en mode mise à jour et se positionne en écriture à le fin du fichier.

Exemple FILE *fich; char nom[100]; printf(``nom du fichier à lire : \n``); scanf(``%s``,nom); if( (fich=fopen(nom, ``r``)) ==NULL) exit(1);

Les entrées/sorties caractère int getc(FILE *); int fgetc(FILE *); int getchar(); int putc(FILE *); int fputc(FILE *); int putchar(); Exemple: void main(void){ int c; FILE *fich; fich = fopen(``données``, ``r``); do{ c = getc(fich); } while(c= = EOF); } Autre test sortie: int feof(FILE *) retourne pas zéro si EOF

Les entrées/sorties formatées Les fonctions fprintf() et fscanf() s’utilisent exactement de la même façon que printf et scanf, il suffit d’ajouter un paramètre pointeur de fichier: FILE *fichier; fichier = fopen(nomFichier, ``w``); int x=25; fprintf(fichier, ``%d\n``,x); Qui pourra être lu par: fscanf(fichier,``%d``,&a);

Les entrées/sorties binaires bufferisées Sur fichiers ouverts en binaire fich = fopen(monFichier, ``rb``); size_t fread(void *ptr, size_t size, unsigned int n, FILE *stream); size_t fwrite(void *ptr, size_t size, unsigned int n, FILE *stream); Principe: écrire directement la représentation machine des variables (c’est-à-dire de leur contenu mémoire) Exemple: short x =1024; fprintf(fich,``%d``,x) écrira les 4 caractères ‘1’, ‘0’, ‘2’ et ‘4’ dans le fichier texte fwrite(&x, sizeof(x), 1, fich) écrira les deux octets dans le fichier

Les entrées/sorties binaires bufferisées(2) Avantages: stockage réduit et lecture/écriture efficace. (une copie de la mémoire) Inconvénients: non portable (taille des objets diff.), non lisibles par éditeurs de textes. (créer des programmes scanf/fwrite et fread/printf C pour les convertir)

Fonction de parcours du fichier int fseek(FILE *flux, long int offset, int flag); Modifie la position du pointeur de fichier (lieu du prochain accès). Flag: –SEEK_SET début de fichier –SEEK_CUR relativement à la position courante –SEEK_END fin du fichier

Traitement des erreurs de gestion de fichier Accès à des fichiers est source d’erreurs multiples: Lors de l’ouverture (fichier inexistant, droits restrictifs, manque de place, erreur matérielle) Rencontre d’une fin de fichier Manque de place sur l’unité concernée Destruction de la structure FILE Mauvaise opération sur pointeur de fichier

Détection des erreurs Seule l’erreur matérielle est détecté par le système, toute les autres ne provoquent PAS l’arrêt du programme: il faut les traiter. Un indicateur ferror peu efficace (oui/non) int ferror(FILE *); Un indicateur errno peu fiable Détection de la fin de fichier avec feof (il faut avoir lu la fin de fichier pour la reconnaître) Consulter les valeurs de retour des fonctions

Détection des erreurs nb_ecrit = fwrite(…,nblocs,fich); Si nb_ecrit == nblocs OK, si inf: erreur nb_lu = fread(…, nblocs,fich); Si nb_lu == nblocs et !feof, OK Si nb_lu est inf. à nblocs et !feof, pb materiel Si nb_lu == 0 et feof, fin de fichier normal Si nb_lu !=0 et eof, fin de fichier anormal

Détection des erreurs ncar = fprintf(fich, …); si negatif alors pb nb_lu = fsanf (fich,…); Si nb_lu == nb_attendu et !feof, OK Si nb_lu est inf. à nb_attendu et !feof, pb materiel Si nb_lu == EOF et feof, fin de fichier normal Si nb_lu !=EOF et eof, fin de fichier anormal

Détection des erreurs c_ecrit = fputc(…,fich); c_ecrit != EOF, l’écriture s’est bien déroulé sinon, erreur d’écriture par manque de place ou erreur matériel. ret = fgetc(fich); ret != EOF et !feof lecture normale ret == EOF et !feof pb matériel feof fin de fichier normale