Fonctions de sauvergarde et d'ouvertrure de C

Résolu
UNIX/VI/SHELL Messages postés 87 Date d'inscription   Statut Membre Dernière intervention   -  
UNIX/VI/SHELL Messages postés 87 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voudrais avoirc comment l'on écrit en C, une fonction pour sauvergarder et ouvrir des fichiers. En faite, comme le réalise un éditeur de texte, j'aurais besoin de réaliser une fonction de sauvegarde et d'ouverture de fichiers, seulement je 'narrive pas écrire une telle fonction. J'aurais besoin d'un code C ( si ce n'est pas trop demander ).

Merci déja d'avance pour votre aide.

5 réponses

mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Ce n'est pas trop demandé :) Il suffit d'ouvrir un fichier avec la fonction fopen soit en lecture (pour lire un fichier) soit en écriture pour écrire un fichier.
#define _GNU_SOURCE // voir man getline
#include <stdio.h>
#include <stdlib.h>

int main(){
    unsigned i;
    const char *filename = "plop.txt";
    FILE *fpw,*fpr;
    char *buffer;
    size_t n = 255;

    // J'écris les chiffre de 0 à 9 multipliés par 2 dans plop.txt
    fpw = fopen(filename,"w");
    if(!fpw){
        fprintf(stderr,"impossible d'ouvrir [%s] en écriture\n",filename);
        return EXIT_FAILURE;
    }else{
        for(i=1;i<10;++i) fprintf(fpw,"%i\n",2*i);
        fclose(fpw);
    }

    // Je vais maintenant lire le fichier que j'ai écrit ligne par ligne
    // Chaque ligne sera stockée dans le tampon (buffer) avant d'être affichée
    buffer = (char *)malloc(sizeof(char)*255);
    fpr = fopen(filename,"r");
    if(!fpr){
        fprintf(stderr,"impossible d'ouvrir [%s] en lecture\n",filename);
    }else{
        for(i=1;getline(&buffer,&n,fpr) != -1;++i){
            printf("ligne %i\t: %s",i,buffer);
        }
        fclose(fpr);
    }
    free(buffer);

    return EXIT_SUCCESS;
}

Les phases de compilation et d'exécution donnent, ici sous linux :
(mando@aldur) (~) $ gcc -W -Wall plop.c
(mando@aldur) (~) $ ./a.out
ligne 1 : 2
ligne 2 : 4
ligne 3 : 6
ligne 4 : 8
ligne 5 : 10
ligne 6 : 12
ligne 7 : 14
ligne 8 : 16
ligne 9 : 18

Il suffit a présent d'écrire ton fichier de sorte à pouvoir en réextraire facilement l'information (on parle de parser un fichier dans le jargon informatique). Tout dépend ensuite du genre d'information que tu veux stocker.

Bonne chance
0
UNIX/VI/SHELL Messages postés 87 Date d'inscription   Statut Membre Dernière intervention   7
 
Vraiment merci de ton aide !
0
UNIX/VI/SHELL Messages postés 87 Date d'inscription   Statut Membre Dernière intervention   7
 
Mias comment ont faits pour que s le fichier existe, il n'est aucune écriture sur ce fichier.
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
La fonction fopen crée le fichier si celui-ci n'existe pas. Si un fichier plop.txt existait il est écrasé. Tout dépend de la manière dont tu ouvres ton fichier. Pour plus de renseignement tape dans une console ou dans google :
man fopen

http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/fopen.3.html

Bonne chance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
UNIX/VI/SHELL Messages postés 87 Date d'inscription   Statut Membre Dernière intervention   7
 
Merci
0