Bonjour, j'ai une std::list<element>, avec element une structure qui
contient des std::string et std::map.
Y'a t'il un moyen simple d'enregistrer cette liste dans un fihchier ? Et
de la relire apres (j'avais pensé tout enregistrer en binaire, mais bon,
comme la liste est chainé avec des pointeur, j'ai peur que ca passe mal.
Y'a t'il une autre solution que tout enregistrer en mode text, et de
recrerer la liste, les map a chaque lecture du fichier ?
Y'a t'il une autre solution que tout enregistrer en mode text, et de recrerer la liste, les map a chaque lecture du fichier ?
Non. Mais tu peux te faire aider. Cherche les mots "sérialisation" ou "serialization" dans Google (web + archives du forum).
-- ;-)
Jean-Sebastien Mouret
matlerouge writes:
Bonjour, j'ai une std::list<element>, avec element une structure qui contient des std::string et std::map.
Y'a t'il un moyen simple d'enregistrer cette liste dans un fihchier ? Et de la relire apres (j'avais pensé tout enregistrer en binaire, mais bon, comme la liste est chainé avec des pointeur, j'ai peur que ca passe mal.
Y'a t'il une autre solution que tout enregistrer en mode text, et de recrerer la liste, les map a chaque lecture du fichier ?
ton probleme est le meme que ce soit dumpe' en texte ou en binaire.
-- js
matlerouge <matlerougeNOSPAM@laposte.net> writes:
Bonjour, j'ai une std::list<element>, avec element une structure qui
contient des std::string et std::map.
Y'a t'il un moyen simple d'enregistrer cette liste dans un fihchier ? Et
de la relire apres (j'avais pensé tout enregistrer en binaire, mais bon,
comme la liste est chainé avec des pointeur, j'ai peur que ca passe mal.
Bonjour, j'ai une std::list<element>, avec element une structure qui contient des std::string et std::map.
Y'a t'il un moyen simple d'enregistrer cette liste dans un fihchier ? Et de la relire apres (j'avais pensé tout enregistrer en binaire, mais bon, comme la liste est chainé avec des pointeur, j'ai peur que ca passe mal.
Y'a t'il une autre solution que tout enregistrer en mode text, et de recrerer la liste, les map a chaque lecture du fichier ?
ton probleme est le meme que ce soit dumpe' en texte ou en binaire.
-- js
kanze
matlerouge wrote:
Bonjour, j'ai une std::list<element>, avec element une structure qui contient des std::string et std::map.
Y'a t'il un moyen simple d'enregistrer cette liste dans un fihchier ?
Ça dépend de ta définition de « simple ». Conceptuellement, c'est ultra simple, mais il faut un peu de code, quand même.
Et de la relire apres (j'avais pensé tout enregistrer en binaire, mais bon, comme la liste est chainé avec des pointeur, j'ai peur que ca passe mal.
Tu peux formatter en binaire comme tu peux formatter en texte. Les fonctions de formattage de texte ont l'avantage d'exister déjà, mais elles n'assure pas l'aller-retour en ce qui concerne std::string. (C-à-d que si tu écris la chaîne avec <<, tu n'es pas garanti de pouvoir le rélire correctement avec >>. C'est un peu le cas de tous les types, dans la mésure que << n'insère pas de séparateur, mais le cas des chaînes est particulièrement flagrant.)
Y'a t'il une autre solution que tout enregistrer en mode text, et de recrerer la liste, les map a chaque lecture du fichier ?
Il faudrait de toute façon récréer les données quand on les rélit. Quelque soit le format choisi.
AMHA, la première chose à faire est de définir un format. De préférence texte, parce que c'est plus facile à débugger (de loin). Le choix d'un format pourrait dépendre de ce que représent ces chaînes, et de ce que le map contient ; il est beaucoup plus facile à définir un format où les chaînes n'utilisent qu'un sous-ensemble des caractères disponibles, où qu'elles ont une longueur fixe, par exemple.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
matlerouge wrote:
Bonjour, j'ai une std::list<element>, avec element une
structure qui contient des std::string et std::map.
Y'a t'il un moyen simple d'enregistrer cette liste dans un
fihchier ?
Ça dépend de ta définition de « simple ». Conceptuellement,
c'est ultra simple, mais il faut un peu de code, quand même.
Et de la relire apres (j'avais pensé tout enregistrer en
binaire, mais bon, comme la liste est chainé avec des
pointeur, j'ai peur que ca passe mal.
Tu peux formatter en binaire comme tu peux formatter en texte.
Les fonctions de formattage de texte ont l'avantage d'exister
déjà, mais elles n'assure pas l'aller-retour en ce qui concerne
std::string. (C-à-d que si tu écris la chaîne avec <<, tu n'es
pas garanti de pouvoir le rélire correctement avec >>. C'est un
peu le cas de tous les types, dans la mésure que << n'insère pas
de séparateur, mais le cas des chaînes est particulièrement
flagrant.)
Y'a t'il une autre solution que tout enregistrer en mode text,
et de recrerer la liste, les map a chaque lecture du fichier ?
Il faudrait de toute façon récréer les données quand on les
rélit. Quelque soit le format choisi.
AMHA, la première chose à faire est de définir un format. De
préférence texte, parce que c'est plus facile à débugger (de
loin). Le choix d'un format pourrait dépendre de ce que
représent ces chaînes, et de ce que le map contient ; il est
beaucoup plus facile à définir un format où les chaînes
n'utilisent qu'un sous-ensemble des caractères disponibles, où
qu'elles ont une longueur fixe, par exemple.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Bonjour, j'ai une std::list<element>, avec element une structure qui contient des std::string et std::map.
Y'a t'il un moyen simple d'enregistrer cette liste dans un fihchier ?
Ça dépend de ta définition de « simple ». Conceptuellement, c'est ultra simple, mais il faut un peu de code, quand même.
Et de la relire apres (j'avais pensé tout enregistrer en binaire, mais bon, comme la liste est chainé avec des pointeur, j'ai peur que ca passe mal.
Tu peux formatter en binaire comme tu peux formatter en texte. Les fonctions de formattage de texte ont l'avantage d'exister déjà, mais elles n'assure pas l'aller-retour en ce qui concerne std::string. (C-à-d que si tu écris la chaîne avec <<, tu n'es pas garanti de pouvoir le rélire correctement avec >>. C'est un peu le cas de tous les types, dans la mésure que << n'insère pas de séparateur, mais le cas des chaînes est particulièrement flagrant.)
Y'a t'il une autre solution que tout enregistrer en mode text, et de recrerer la liste, les map a chaque lecture du fichier ?
Il faudrait de toute façon récréer les données quand on les rélit. Quelque soit le format choisi.
AMHA, la première chose à faire est de définir un format. De préférence texte, parce que c'est plus facile à débugger (de loin). Le choix d'un format pourrait dépendre de ce que représent ces chaînes, et de ce que le map contient ; il est beaucoup plus facile à définir un format où les chaînes n'utilisent qu'un sous-ensemble des caractères disponibles, où qu'elles ont une longueur fixe, par exemple.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34