Sauvegarder/restaurer des classes

Soyez le premier à donner votre avis sur cette source.

Vue 7 506 fois - Téléchargée 534 fois

Description

ce code permet de sauvegarder et restaurer des classes entières . Elle présente la sauvegarde/restauration de différents éléments tel que:
->tableau statiques
->tableau dynamiques
->std::string
->std::vector
->types de base(int,float,...)

il y a aussi un exemple de std::vector de classe ainsi que d'un tableau de classe pour gérer tous las cas pouvant se présenter .

Source / Exemple :


voir zip
le code n'est pas beaucoup commenté donc si cela ne suffit pas dites le moi et je mettrais à jour après l'avoir commenté .
NOTE: lors de la sauvegarde de chaîne de caractères tel que std::string, le 0 final n'est pas sauvegardé puisqu'il est inutile(on sauvegarde la longueur de la chaîne) .

Conclusion :


pour simplifier la vérification du code, chaque classe peut être "imprimé", j'ai dirigé l'impression dans un fichier nommé "out.txt" qui présente l'état des classe avant sauvegarde->destruction->restauration et après .
la sauvegarde est faite dans un fichier nommé "save.sav" .
Ce code est surtout une réponse plus complète un poste du forum(certe un peu en retard :) mais ce n'est pas perdu je pense) et n'a aucun utilité puisque les classes sont entièrement remplis par des rand() !!! Ce sont juste les fonctions de sauvegarde et de restauration qui sont intéressante .
Je met ce code en initié à cause de l'utilisation intensive de pointeur qui nécessite tout de même un peu de connaissances du language .

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Pamaury
Messages postés
341
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
17 juin 2008
1 -
bonjour, j'avais déjà entendu ce terme mais je ne savais à quoi cela faisait référence !
Je viens de faire une rapide recherche sur internet et c'est vrai que c'est pour sauvegarder des objets .
En fait c'était surtout pour aider quelqu'un du forum donc je fait par une méthode assez brute mais qui marche pour tout les objets que je sauvegarde mais de là a ce quelle soit plus complexe je sait pas parce que pour sauvegarder un graph avec des pointeurs entre eux dans tous les sens, il faudrait faire encore un traitement avant qui compliquerais la tâche . Cela dépend de la complexité des objets a stocker mais ici ma méthode est très général et en plus tout ce que je stocke ne sert à rien !!
Merci pour cette remarque: je me renseignerais sûrement plus sur le sérialisation.
magic_Nono
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1 -
bj

ta méthode ressemble à de la sérialisation
en plus complexe

conseil: renseigne toi sur cette façon de faire qui doit etre, d'après l'avis de certains pro optimal

++
Nono.
nah666
Messages postés
75
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
7 janvier 2008
-
ok, bien joué alors :p
Pamaury
Messages postés
341
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
17 juin 2008
1 -
bonjour, j'ai mis le code à jour et j'ai crée quatre macros pour simplifier le processus de sauvegarde et de restauration donc c'est plus compréhensible maintenant .
Néanmoins je ne vois pas ce que tu veux dire par
" Tu confonds pas les notions de classes et d'instance par hasard ?"
si c'est le fait que je dise que l'on sauvegarde une classe et que tu préfère que je dise qu'on sauvegarde l'instance d'un classe excuse moi de cet abus de language mais je pense que tu avais compris quand même avec le commentaire du dessous ?
nah666
Messages postés
75
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
7 janvier 2008
-
euh c'est pas trés clair, en tous cas pour moi.
Tu confonds pas les notions de classes et d'instance par hasard ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.