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

    Informations forums :
    Inscription : août 2007
    Messages : 787
    Points : 244
    Points
    244

    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
    Membre expert
    Inscrit en
    mars 2005
    Messages
    1 077
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 1 077
    Points : 3 162
    Points
    3 162

    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
    787
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : août 2007
    Messages : 787
    Points : 244
    Points
    244

    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, 14h52
  2. Stockage de données dans un fichier binaire
    Par DarkSeiryu dans le forum Windows Forms
    Réponses: 35
    Dernier message: 09/06/2009, 03h41
  3. Réponses: 4
    Dernier message: 04/04/2009, 21h10
  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, 12h41
  5. Réponses: 10
    Dernier message: 19/06/2006, 20h04

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