#0 

25-10-2006 21:35:20

Dekron
Membre
Lieu: Orléans
Date d'inscription: 21-10-2006
Messages: 46
Site web

Bon je ne savais pas trop ou poster, je tente déja ici, car ca peut concerner irrlicht.

Je me demandais, comment enregistrer des données dans un fichier et les réutiliser plus tard.

Dans mes cours de C++ basique, on avait bossé sur les flux, et enregistré dans un fichier .txt des données numériques. Pour les relire, il fallait réouvrir ces fichier, et décoder ( la est toute la nuance ) les données pour ne pas faire d'erreur ( genre placer les 8 ou 9 premiers chifre dnas le premier double, et pas simplement le 1er ).

En utilisant Visual C++ et les MFC ( ds mon école ) on s'est servi de la sérialisation, méthode bien pratique qui permet d'enregistrer des infos de tout type tres facilement, de définir un type de fichier précis dans lequel elle seront gardées, puis de pouvoir le r'ouvrir tres facilement.

Grace à la méthode Serialize() des MFC, on peut enregistrer directements des instances entières, sans devoir enregistrer les parametres un par un, et surtout, redécoder tout cela lors de la réouverture.

Donc, je me demandais s'il existait en C++ ( peut être fourni avec irrlicht ?? ) des méthodes similaires pour enregistrer des données ( comme des objets instanciés ) dans un fichier, et les relire, sans devoir utiliser la méthode de " je transforme tout en caractères que j'enregistre un par un, puis je redécode tout le tsoin tsoin ... " ?
Enfin je suppose que cela existe, comment font les développeurs de soft sinon ? Ils utilisent tous visual ?


Visitez Arcis : MMORPG ammateur utilisant irrlicht !
Etudiant ingénieur, maitrise C++, connaissances python & php.

Hors ligne


#1 

25-10-2006 21:45:49

DeusXL
Abonné
Lieu: Paris
Date d'inscription: 27-09-2006
Messages: 174

En C++, sauf erreur, il n'y a pas de mystère. Il faut coder tes propres méthodes de Serialisation.
Irrlicht en a déjà des tonnes (utilisées par les fichier .irr et par irrEdit donc) qui stockent plein d'informations dans une syntaxe de type XML mais au final on a toujours une imbrication des sérialisations, exemple :
-Sérialisation d'un flottant
-Sérialisation d'un vecteur 3D (3 flottants)
-Sérialisation d'une matrice 4x4 (16 flottants)
-Sérialisation d'une scene node (X vecteurs 3D et Y matrices)
-Sérialisation d'une scène (X scene nodes)

Je sais pas si tu me suis mais ce que je veux dire c'est qu'il n'y a pas de méthode miracle, il faut imbriquer pour se réduire aux types de base au final... C'est ainsi que .NET procède pour permettre des sérialisations très propres et assez simples.

PS : Je sais pas pourquoi mais une petite voix dans ma tête me dit que j'avais rencontré un code avec dedans une sérialisation propre d'une structure en C.

Dernière modification par DeusXL (25-10-2006 21:47:49)


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

Hors ligne


#2 

25-10-2006 22:09:47

Aranoth
Abonné
Lieu: Toulouse
Date d'inscription: 25-09-2006
Messages: 242
Site web

Hors ligne


#3 

25-10-2006 22:10:23

Dekron
Membre
Lieu: Orléans
Date d'inscription: 21-10-2006
Messages: 46
Site web

Sisi je t'ai suivi, mais bon ya toujours une peite aide.

Ca te permet aussi d'enregistrer les données dans un type que tu choisis, et pas dans un fichier txt ?

Comme cela, tu as des exemples de fonctions d'irrlicht ( a part les irr ) qui "sérialisent" ?


Visitez Arcis : MMORPG ammateur utilisant irrlicht !
Etudiant ingénieur, maitrise C++, connaissances python & php.

Hors ligne


#4 

26-10-2006 08:22:29

DeusXL
Abonné
Lieu: Paris
Date d'inscription: 27-09-2006
Messages: 174

Moi j'ai décrit une démarche permettant de réduire la lourdeur du code mais au final tu dois toi-même l'adapter à tes besoins, dans Irrlicht, beaucoup de classes ont ces fonctions de Sérialisations/Désérialisations, utilisées notamment dans les .irr, à part ça je vois pas où il pourrait y en avoir.

@Aranoth : Je me doutais que Boost ou autres avaient une librairie dans ce genre, mais j'avoue avoir eu un peu la flème de chercher smile


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

Hors ligne


#5 

26-10-2006 12:43:38

Dekron
Membre
Lieu: Orléans
Date d'inscription: 21-10-2006
Messages: 46
Site web

merci, je vais aller mater cela un peu smile


Visitez Arcis : MMORPG ammateur utilisant irrlicht !
Etudiant ingénieur, maitrise C++, connaissances python & php.

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
82 invités en ligne
Aucun membre connecté
RSS Feed