IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Modifier donnée dans un fichier binaire


Sujet :

C

  1. #1
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut Modifier donnée dans un fichier binaire
    Bonjour.

    Pour un exercice, j'ai une petit appli en C

    C'est une appli de gestion d'employé.

    J'ai uns structure Employé avec un ID, nom, prénom, age, poste (et autre) et une structure Poste qui contient la structure Employé

    Les données sont lu et sauvegardé dans un fichier .bin avec les fonction fread et fwrite

    L'appli me permet d'ajouter des employé (pas de problème), afficher la fiche d'un employé (pas de problème).

    Je voudrais pouvoir modifier le poste de l'employé mais je ne vois pas trop comment faire.

    Je pensais éventuellement lire le fichier et mettre les données dans un tableau de structure pour pouvoir modifier ce que je veux avec (en le sélectionnant par son id) puis réécrire la totalité du tableau après avoir vidé le fichier bin.

    Mais je n'y arrive pas car je sais pas trop comment partir.

    Puis-je avoir vos avis et vos idées SVP ??

    Merci d'avance

    Voici un exemple de code que j'ai fait pour ajouter un employé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    void NewEmploye(Poste *poste) {  printf("\n _____________________________________________\n");
      printf("|\t    AJOUTER UN NOUVEL EMPLOYE          |\n");
      printf("|_____________________________________________|\n");
      int nbrEmploye;
      struct tm date;
      int dateNaissanceEmploye;
      nbrEmploye=NombreEmploye(*poste)+1;
        poste->listEmploye->idEmploye=nbrEmploye;
        printf("\nNom de l'employé : ");
        scanf("%s", poste->listEmploye->nomEmploye);
        printf("Prenom de l'employé : ");
        scanf("%s", poste->listEmploye->prenomEmploye);
      SaveEmploye(*poste);
      SousMenuEmploye(*poste);
    }
     
     
    void SaveEmploye(Poste poste) { // Enregistre un nouvel employé
      FILE*fichier;
      fichier = fopen("employe.bin","a");
        fwrite( &poste , sizeof(Poste) , 1 , fichier);
      fclose(fichier);
    }

  2. #2
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Tu n'as pas le choix, pour modifier une partie d'un fichier, tu dois :

    • lire le fichier jusqu'à identifier la section qui t'intéresse (à la rigueur tu peux seek si le flux le permet et que tu sais à l'avance où cette section se trouve) ;
    • désérialiser les entrées concernées dans des objets adaptés (structure « employé ») ;
    • effectuer les modifications ;
    • ré-écrire l'intégralité du fichier en sérialisant les entrées modifiées.



    Dans un cadre non pédagogique, on utilise au minimum un moteur de base de données type SQLite pour ce genre de petite application de gestion, ce qui simplifie grandement les choses.

  3. #3
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Merci beaucoup.

    Après pas mal d'essaies, j'ai enfin réussi .

    J'ai d'autres problèmes mais si besoin, je ferais d'autres sujets

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Stockage de données dans un fichier binaire
    Par Dayodavor dans le forum MATLAB
    Réponses: 2
    Dernier message: 07/01/2010, 13h52
  2. Stockage de données dans un fichier binaire
    Par DarkSeiryu dans le forum Windows Forms
    Réponses: 35
    Dernier message: 09/06/2009, 02h41
  3. Réponses: 4
    Dernier message: 04/04/2009, 20h10
  4. [VB.NET] insertion donnée dans un fichier binaire
    Par wolfazer dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/02/2008, 11h41
  5. Réponses: 10
    Dernier message: 19/06/2006, 19h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo