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++Builder Discussion :

enregistrer une structure


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut enregistrer une structure
    bounjour a tous,
    Je voudrais savoir commen faire pour enregistrer une structure dans un fichier binaire. J'ai éssayé diferente solution mmais aucune ne marche ( fopen fwrite savetofile.....)
    Je supose que sa doit etre simple mais je ne trouve pa la solution...
    PS : ma structure devrait faire environ 65 ko (juste au cas ou sa a de l'importance)
    merci d'avacne de vos réponse

  2. #2
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Salut, tu peux l'enregistrer dans un fichier ini, avec une clé par variable.
    C'est simple, facilement visionnable après (avec un bloc note) sans ton appli et developpez fourni du code pour l'exploitation des fichiers ini dans la FAQ.

    Sinon, perso pour que ma structure ne soit pas accessible par l'utilisateur, mais qu'elle soit sauvegardé, je l'enregistre en ressource. Mais cette derniere méthode est complexe à comprendre. Cela fait aussi grossir ton exe suivant ta structure (65ko c'est négligeable).

    A toi de voir ce que tu veux.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut C'est pa exactement ca....
    En fait le fichier que je veux sauvegarder est destiné a etre enregistrer sur
    une carte mémoire afin d'etre utilisé par la suite par un microcontroleur
    alor un fichier .ini ça ne va pa...

    Je voudrai si c'est possible qu'il n'y ait que ma structure dans le fichier
    (en binaire) afin que ça soit plus simple de la lire avec le microcontroleur.

    merci quand meme pour ta réponse.

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Par défaut
    Bonjour,

    Quel est le problème avec fwrite ? Cela devrait fonctionner.

    Extrait de l'aide BCB 6 ("fwrite example") :

    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
    24
    #include <stdio.h>
     
    struct mystruct
    {
      int i;
      char ch;
    };
     
    int main(void)
    {
       FILE *stream;
       struct mystruct s;
     
       if ((stream = fopen("TEST.$$$", "wb")) == NULL) /* open file TEST.$$$ */
       {
          fprintf(stderr, "Cannot open output file.\n");
          return 1;
       }
       s.i = 0;
       s.ch = 'A';
       fwrite(&s, sizeof(s), 1, stream); /* write struct s to file */
       fclose(stream); /* close file */
       return 0;
    }
    Nicolas

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut
    Le probleme c'est que je ne peu pas choisir ou enregistrer mon fichier.
    dans un autre programme j'enregistre des fichier texte ou je veu en utilisans ces lignes de code

    Code :
    AnsiString Filename;
    if(OpenDialog2->Execute()) Filename = OpenDialog2->FileName;
    \Code

    avec fwrite je ne peu pas

  6. #6
    Membre éprouvé
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Par défaut
    Citation Envoyé par nwadecoco
    Le probleme c'est que je ne peu pas choisir ou enregistrer mon fichier.
    dans un autre programme j'enregistre des fichier texte ou je veu en utilisans ces lignes de code

    Code :
    AnsiString Filename;
    if(OpenDialog2->Execute()) Filename = OpenDialog2->FileName;
    \Code

    avec fwrite je ne peu pas
    Désolé, je ne comprend pas bien le problème/rapport entre "choisir" le nom du fichier (effectivement avec un OpenDialog par exemple) et "écrire" dans un fichier (avec fwrite par exemple).

    Pour résumer, on peut très bien choisir un emplacement et un nom de fichier via un Opendialog puis écrire dans ce fichier en binaire via fwrite.

    Cela répond à la question ou bien j'ai loupé un truc ?

    Nicolas

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut ça doit etre moi
    en Fait l'éreur doit venir de moi.
    Ce code permet de choisir l'emplacement pour enregistrer mon fichier.
    Mon probleme est que Filename est un AnsiString et que fwrite n'en veu pas en entrée....
    Tu as sans doute raison ça doir etre possible mais je ne sais pas comment

  8. #8
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    il faut utiliser la méthode c_str() pour passer d'AnsiString à char*

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

Discussions similaires

  1. [Débutant] Enregistrer une structure sur Excel
    Par Fundhor dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 10/09/2014, 10h40
  2. Réponses: 9
    Dernier message: 18/06/2011, 18h13
  3. Enregistrer une structure dans un fichier txt
    Par SLF153 dans le forum MATLAB
    Réponses: 4
    Dernier message: 22/03/2011, 13h24
  4. enregistrer une structure dans un fichier
    Par Namson dans le forum C
    Réponses: 1
    Dernier message: 21/02/2009, 23h31
  5. Réponses: 2
    Dernier message: 02/04/2007, 10h01

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