2IIR 2016/2017. Les Fichiers en C

Documents pareils
Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Programmation système I Les entrées/sorties

Programmation impérative

Les fichiers. Chapitre 4

Cours 14 Les fichiers

Le langage C. Séance n 4

Le système de gestion des fichiers, les entrées/sorties.

GESTION DES FICHIERS C/UNIX

Cours de Système : Gestion de Fichiers

Les chaînes de caractères

Rappels Entrées -Sorties

Programmation en langage C

Initiation. àl algorithmique et à la programmation. en C

1 Lecture de fichiers

Programmation système en C/C++

Compression de Données - Algorithme de Huffman Document de Conception

Algorithmique et Programmation, IMA

Cégep de Saint Laurent Direction des communications et Direction des ressources technologiques. Projet WebCSL : Guide de rédaction web

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

SYSTÈME DE GESTION DE FICHIERS

Programmation système de commandes en C

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Le prototype de la fonction main()

Bases de programmation. Cours 5. Structurer les données

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Flux de données Lecture/Ecriture Fichiers

Travaux Dirigés n 1 : chaînes de caractères

Premiers Pas en Programmation Objet : les Classes et les Objets

Initiation à Excel. Frédéric Gava (MCF)

Introduction au langage C

ACTIVITÉ DE PROGRAMMATION

Cours 6 : Tubes anonymes et nommés

Comment utiliser RoundCube?

IV- Comment fonctionne un ordinateur?

Chap III : Les tableaux

Leçon 1 : Les principaux composants d un ordinateur

Module : Informatique Générale 1. Les commandes MS-DOS

Aide Webmail. L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels.

La communication et la gestion de l'information

Les débordements de tampons et les vulnérabilités de chaîne de format 1

COMMUNICATION PC/MINITEL

TP3 : Manipulation et implantation de systèmes de fichiers 1

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

La clôture annuelle EBP V11

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

Le chiffre est le signe, le nombre est la valeur.

Initiation à la programmation en Python

Stockage du fichier dans une table mysql:

Conventions d écriture et outils de mise au point

SUPPORT DE COURS. Langage C

B2i Brevet Informatique. Internet. Livret de l enseignant

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cycle III Brevet Informatique & Internet Niveau 1. "Je pense être capable

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

inviu routes Installation et création d'un ENAiKOON ID

I. Introduction aux fonctions : les fonctions standards

Programmation en langage C Eléments de syntaxe

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE. Manuel de formation. Achats

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

La gestion des boîtes aux lettres partagées

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Procédure de sauvegarde pour AB Magique

GE Security. KILSEN série KSA700 Centrale de détection et d alarme Incendie analogique adressable. Manuel d utilisation

AUJOUR'HUI, NOUS ALLONS DÉCOUVRIR

Structure d un programme

Écrire pour internet. Comment les internautes lisent ils? La lecture à l'écran

Dossier 03 Périphériques d acquisition

PROJET ALGORITHMIQUE ET PROGRAMMATION II

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

I00 Éléments d architecture

Découvrir l'ordinateur (niveau 2)

Les structures. Chapitre 3

Modes Opératoires WinTrans Mai 13 ~ 1 ~

Rappel sur les bases de données

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Java Licence Professionnelle CISII,

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Télécom Nancy Année

Cours Programmation Système

MODE OPERATOIRE CIEL GESTION COMMERCIALE VERSION EVOLUTION BTS PME PMI

Arguments d un programme

4D Server et les licences : fonctionnement et environnement

I. MySQL : Serveur et SGBD

Gestion distribuée (par sockets) de banque en Java

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

La mémoire. Un ordinateur. L'octet. Le bit

Le Service de Télétransmission par Internet des banques du Réseau OCÉOR GUIDE UTILISATEURS. Version V1.0

Premiers pas sur l ordinateur Support d initiation

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Transcription:

Les Fichiers en C Introduction La communication entre un programme et son environnement s établie par l intermédiaire des fichiers. Le clavier et l écran sont aussi considérés comme fichiers standards, (clavier : fichier d entrée standard, l écran : fichier de sortie standard). Nous avons utilisé ses deux fichiers pour lire et écrire les données utilisées dans un programme, dans ce cours nous allons voir comment nous pouvons créer, lire et écrire dans des fichiers externes. Définitions Un fichier: Un ensemble de données stocké en général sur un support externe (disquette, disque dur, usb,...). Dans des fichiers séquentiels, les enregistrements sont mémorisés consécutivement dans l'ordre de leur entrée et peuvent seulement être lus dans cet ordre. Si on a besoin d'un enregistrement précis dans un fichier séquentiel, il faut lire tous les enregistrements qui le précèdent, en commençant par le premier. Fichiers standards Il existe deux fichiers spéciaux qui sont définis par défaut pour tous les programmes: - stdin le fichier d'entrée standard - stdout le fichier de sortie standard 1

En général, stdin est lié au clavier et stdout est lié à l'écran, c.-à-d. les programmes lisent leurs données au clavier et écrivent les résultats sur l'écran. Intérêt : Mémoriser les données de manières permanente. Les problèmes traitant des fichiers ont généralement la forme suivante: un fichier donné par son nom (et en cas de besoin le chemin d'accès) doit être créé, lu ou modifié. La question qui se pose est alors: Comment pouvons-nous relier le nom d'un fichier sur un support externe avec les instructions qui donnent accès au contenu du fichier? Avant de lire ou d'écrire dans un fichier, l'accès est notifié par la commande fopen. fopen accepte le nom du fichier (p.ex: "C:\Test.txt") et fournit un pointeur spécial qui sera utilisé ensuite lors de l'écriture ou la lecture du fichier. Après les traitements, il faut annuler la liaison entre le nom du fichier et le pointeur à l'aide de la commande fclose. Tout ce que nous avons à faire dans notre programme est: Etapes : - déclarer un pointeur du type FILE* pour chaque fichier dont nous avons besoin, - affecter l'adresse retournée par fopen à ce pointeur, - employer le pointeur à la place du nom du fichier dans toutes les instructions de lecture ou d'écriture, - libérer le pointeur à la fin du traitement à l'aide de fclose. 1. Déclaration du pointeur de type FILE : - FILE * F; - F est un pointeur du type FILE qui sera relié au fichier. Dans la suite du programme, il faut utiliser F au lieu du nom du fichier pour référencer le fichier. 2

2. Ouverture du fichier : F = fopen (Nom_Fichier, Mode); - Nom_Fichier : chaine contenant le nom, le chemin et l extension du fichier. - Mode : chaine indiquant le mode d ouverture du fichier. - F: pointeur de type FILE qui pointe sur le fichier. 3. Fermeture du fichier : fclose(f) ; Modes d ouverture d un fichier: "r" "w" "a" fichier en lecture. fichier en écriture. fichier en écriture à la fin. "r+" fichier en lecture et écriture. "w+" fichier en lecture et écriture. (son contenu sera effacé) "a+" fichier en lecture/écriture à la fin. Lecture formatée: fscanf (pointeur_sur_fichier, "formats", args); Cette fonction lit les valeurs à partir d un fichier pointé par pointeur_sur_fichier et les stocke dans les arguments args selon les formats indiqués. La fonction fscanf déplace le curseur après les valeurs lues. NB : Cette fonction est similaire à scanf, sauf que fscanf lit les données à partir du fichier et scanf lit les données à partir du clavier. Exemple : Lecture à partir d un fichier qui contient des entiers. int a ; FILE * F = fopen("test.txt", "r" ) ; 3

fscanf(f,"%d",&a); print(f,"%d",a) ; Ecriture formatée: fprintf(pointeur_sur_fichier, "formats", args); Cette fonction écrit les valeurs des arguments args dans le fichier pointé par pointeur_sur_fichier selon les formats indiqués. NB : Cette fonction est similaire à scanf, sauf que fprintf écrit les données dans le fichier et scanf affiche les données dans l écran. Exemple : Ecriture d un entier dans un fichier. int a=10 ; FILE * F = fopen("test.txt", "w" ) ; fprintf(f,"%d",a) ; Lecture par caractère: fgetc(pointeur_sur_fichier); Cette fonction lit un caractère à partir du fichier pointé par pointeur_sur_fichier. Valeur de retour (int ) : Si la lecture se fait sans erreur et sans rencontre de la fin du fichier, fgetc rend le caractère lu, sinon rend la valeur EOF. Exemple : Char c ; FILE * F = fopen("test.txt", "r" ) ; While(c=fgetc(F)! =EOF) { /* utilisation de c */ Ecriture par caractère: 4

fputc(caractère,pointeur_sur_fichier); Cette fonction écrit le caractère dans le fichier. Exemple : L'utilisateur doit entrer au clavier le nom du fichier, le nombre de personnes et les noms des personnes. Le programme se chargera de créer le fichier correspondant. Après avoir écrit et fermé le fichier, le programme va rouvrir le même fichier en lecture et afficher son contenu. #include <stdio.h> main() { FILE * F; int nb,i; char Nom_F[30], Pers[30]; printf("entrer le nom du fichier:\n"); scanf("%s",nom_f); F=fopen(Nom_F,"w"); printf("entrer le nombre de personnes:\n"); scanf("%d",&nb); for(i=0;i<nb;i++) { fclose(f); F=fopen(Nom_F,"r"); while(!feof(f)) { fscanf(f,"%s",pers); printf("%s",pers); printf("entrer la personnes %d:\n",i); scanf("%s",pers); fprintf(f,"%s",pers); 5

fclose(f); Remarque: feof (F) retourne une valeur différente de zéro, si la tête de lecture du fichier référencé par F est arrivée à la fin du fichier; sinon la valeur du résultat est zéro. Exercice 1 : Ecrire un programme qui permet de remplir un fichier par des entiers, puis les afficher sur écran. Exercice 2 : Ecrire un programme qui lit le nom et le nombre d habitants de plusieurs villes et les stockent dans un fichier. Exercice 3 : Ecrire un programme qui copie le contenu d un fichier F1 dans un autre fichier F2. Exercice 4 : Ecrire le programme qui lit et affiche un fichier en le parcourant caractère par Caractère. Exercice 5 : Ecrire un programme qui convertit le contenu d un fichier en majuscule. 6

Exercice 6 : On se propose de créer un fichier personnes.txt qui contiendra les informations sur des personnes : Nom, Prenom : chaine de caractères, Matricule : entier. Ecrire un programme qui permet de remplir un fichier par les informations sur des personnes. 7