Bonjour à tous,
Je poste ici pour la première fois, je pense...! Donc salutation à tous! Je suis un programmeur vétéran Labview, et un expert en C_ANSI (Vétéran est plus fort que expert pour moi... Le vétéran va sur le champs de bataille, et l'expert reste dans le bunker! J'ai le meilleur des deux mondes, je peux compiler sur des chips de rien du tout ET/OU faire des benchtest de la mort... (donc pitier, pas de débat sur qu'est-ce qui est le mieux...
Bon, voilà... Ce qui me pousse à poster ici, c'est que là j'ai un dilemme depuis 2 semaines et je tourne en rond. Je réalise présentement un programme, principalement en C ANSI, mais compilé avec un compilateur C++, donc avec certaine lib de C++ ET, le but n'est pas d'aller sur un chip, pour l'instant, mais! il est codé «comme si». Vous voyez le genre...!?
Mon prog possède une structure, qui possède un array dynamique d'une autre structure, et elle, possède 1 array 2D dynamique de double...
bon, disons ça... (c'est un exemple...!)
Je fais des malloc() pour toute la gang, tout est ça coche... Le programme roule ça coche aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 struct PETITE_struct{ int data_size; double **data; }; struct GROSSE_struct{ int petite_size; //le nombre de petite struct...mettons... PETITE_struct *petite; };
Là ou je bloque, c'est lors de la sauvegarde... Bon, le choix du C ANSI*ou du C++ importe plus ou moins, mais la préférence va pour le C ANSI... bien sur... Sinon, j'aurais déjà fini en Labview...(merci de comprendre, et de même pas en parler...
Je désire sauvegarder ma structure qui EST de taille dynamique, dans un fichier (idéalement xml, afin de pouvoir modifier les valeurs manuellement et/ou les voir de façon humaine...) Je dis idéalement, parce que au pire, une fonction user_menu pourrait me permettre de modifier les valeurs... mais pas vraiment de les voir... :S
C'est un programme assez lourd en ressource, et je dois rester minimal... Toutefois, l'utilisation du xml reste possible... (ou, je veux bien entendre vos commentaires là dessus...)
Bon, DONC...
Ma question est, quel est la MEILLEURE solution pour «serializer» et «deserializer» ma «GROSSE_struct»...?
par «serializer/deserializer» je veux dire bien sur, «SAUVEGARDER MA*STRUCTURE*DANS UN FICHIER, ET, CHARGER D'UN FICHIER, MES*DONNÉES*ET*LES*METTRE*DANS*MA*STUCTURE»
Bon voilà, j'ai vu qu'en C# c'est telle qu'elle avec les fonction std, mais pas en C/C++... DONC, je me dis que des lib existe pour celà, MAIS, après avoir testé tinyxml et libxml, je suis toujours sceptique sur l'efficacité/nécessité de mon histoire, libxml, trop gros pour simplement sauvegarder une structure, et tinyxml... trop simple pour serializer/deserializer..., Pour le moment, les datas sont sauvegardé en format .txt, le fichier fait 13Mb, et le prog plante lorsque le nombre de data est trop grand... C'est pas trop grave, mais c'est... pas <propre> disons...
Je fais appel à vous, «quel est la meilleur façon actuel en C/C++ de <parser> ET/OU serializer/deserializer une structure/class?»
Mon programme, malgré son besoin énorme en ressource, ne fais que 2 .cpp et 2 .h ... l'utilisation d'une lib «énorme» comme libxml est... douteuse... l'idéal, serait d'inclure dans mes .cpp quelques fonctions qui serializerais/deserializerais...
Le plus long post du monde surement, mais je poste pas souvent, alors je me donne... Si vous avez eu le courage de me lire, BRAVO, et continuons le pouvoir du C/C++ Malgré ses défauts!
Fakboy
Partager