#1 

25-10-2006 19:35:20

Dekron
Membres
Date d'inscription:
Messages: 46
IP: 172.204.121.11
Courriel  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


#2 

25-10-2006 19:45:49

DeusXL
Membres
Avatar de DeusXL
Date d'inscription:
Messages: 174
IP: 82.66.209.23
Courriel

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.


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


#3 

25-10-2006 20:09:47

Aranoth
Membres
Avatar de Aranoth
Date d'inscription:
Messages: 242
IP: 90.16.194.146
Courriel  Site web

Hors ligne


#4 

25-10-2006 20:10:23

Dekron
Membres
Date d'inscription:
Messages: 46
IP: 172.204.121.11
Courriel  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


#5 

26-10-2006 06:22:29

DeusXL
Membres
Avatar de DeusXL
Date d'inscription:
Messages: 174
IP: 82.66.209.23
Courriel

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


#6 

26-10-2006 10:43:38

Dekron
Membres
Date d'inscription:
Messages: 46
IP: 194.167.30.129
Courriel  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é
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
118 invités en ligne
membre en ligne: -
RSS Feed