Partage
  • Partager sur Facebook
  • Partager sur Twitter

Sauvegarde d'un objet sur fichier binaire

L'objet contenant des vectors

    9 octobre 2020 à 17:36:26

    Bonjour,

    Je souhaite sauvegarder le contenu d'un objet sur fichier binaire, dans le but de le recharger rapidement ultérieurement (i.e. dans un autre programme que celui qui l'a créé).

    Le problème est que cet objet contient des vecteurs comme attributs.

    • Puis-je écrire l'objet tel quel en une fois, par un seul write ?
    • Ou dois-je explorer tous les vecteurs pour écrire chaque valeur contenue par ces vecteurs ?

    Pour info, ci-jointe la classe de l'objet que je souhaite sauvegarder :

    class Noeuds
    {
    private:
    //  Coordonnées adimensionnées de noeuds
        std::vector < std::array < double, 2 >> m_xy;
        std::vector < double >m_z;  // valeurs de la fonction aux noeuds
        double m_xdmin;             // min des abscisses dimensionnées des noeuds
        double m_ydmin;             // min des ordonnées dimensionnées des noeuds
    //  Etendues des abscisses et ordonnées dimensionnées
        double m_range_xd;
        double m_range_yd;
    //  Inverses des étendues des abscisses et ordonnées dimensionnées
        double m_inv_range_xd;
        double m_inv_range_yd;
    
    public:
    ... les méthodes ...



    • Partager sur Facebook
    • Partager sur Twitter
      9 octobre 2020 à 19:22:08

      Salut,

      Ce que tu essaies de faire, ça s'appelle la sérialisation.

      J'ai déjà fait ça en C# mais jamais en C++ et je savais pas si c'était possible. Apparemment ça l'est : Tu peux regarder du coté de Boost::serialization.

      • Partager sur Facebook
      • Partager sur Twitter
        9 octobre 2020 à 19:23:04

        Ce que vous cherchez à faire porte un nom : la sérialisation.

        Comme la représentation en mémoire d'objet est fonction du language, voire des options de compilation, on a tendance à utiliser des framework de sérialisation pour que les objects soient convertis en chaîne de caractère (ou en chaîne d'octets pour les sérialisations "binaires") "standard" et donc facilement ré-interprétable par d'autres programmes, écrits avec d'autres langage (ou hébergé sur des systèmes différents : ASCII<->EBCDIC ou Little Endian <-> Big Endian, etc...).

        Donc, regardez les différents frameworks de sérialisation/déserialisation et choisissez celui qui convient le mieux à votre cas d'usage.

        • Partager sur Facebook
        • Partager sur Twitter
        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
          9 octobre 2020 à 19:26:52

          OK - merci à vous deux.

          Je vais regarder cette sérialisation.

          • Partager sur Facebook
          • Partager sur Twitter

          Sauvegarde d'un objet sur fichier binaire

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown