PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Serialise ! m'ajpute une ligen je ne vois pas ou est mon erreur !
Serialise ! m'ajpute une ligen je ne vois pas ou est mon erreur !
Débuté par LM Concept, 12 déc. 2025 15:41 - 3 réponses
Membre enregistré
394 messages
Posté le 12 décembre 2025 - 15:41
Bonjour à tous,
Lors de la définition des classe puis de sérialisation de celle-ci, il y a une ligne indésirable!!
pour faite des test j'ai fait un petit exemple,,mais je n'arrive pas à trouver !

Exemple pour mettre en évidence le soucis.
Dison je veux créer ce XML.
<Maison>
<Année>2000</Année>
<DefinitionPieces>
<DefinitionPiece>
<Nom>Salon</Nom>
<Surface>40</Surface>
</DefinitionPiece>
<DefinitionPiece>
<Nom>Cuisine</Nom>
<Surface>20</Surface>
</DefinitionPiece>
</DefinitionPieces>
</Maison>


J'ai fait les classes ainsi, (je pense le problème est la !
CHabitation est une Classe
m_clMaison est un CMaison <Sérialise = "Maison">
FIN

CMaison est une Classe
m_clAnnée est un entier <Sérialise = "Année">
m_clDefinitionPieces est un tableau <Sérialise = "DefinitionPieces"> de CDefinitionPieces
FIN

CDefinitionPieces est une Classe
m_clDefinitionPiece est un CDefinitionPiece <Sérialise = "DefinitionPiece">
FIN

CDefinitionPiece est une Classe
m_clNom est une chaîne <Sérialise = "Nom">
m_clSurface est un entier <Sérialise = "Surface">
FIN


Puis le code pour alimenter et générer ..
gclHabitation est un CHabitation

gclHabitation.m_clMaison.m_clAnnée = 2000
gclHabitation.m_clMaison.m_clDefinitionPieces.Ajoute()
gclHabitation.m_clMaison.m_clDefinitionPieces[1].m_clDefinitionPiece.m_clNom = "Salon"
gclHabitation.m_clMaison.m_clDefinitionPieces[1].m_clDefinitionPiece.m_clSurface = 40
gclHabitation.m_clMaison.m_clDefinitionPieces.Ajoute()
gclHabitation.m_clMaison.m_clDefinitionPieces[2].m_clDefinitionPiece.m_clNom = "Cuisine"
gclHabitation.m_clMaison.m_clDefinitionPieces[2].m_clDefinitionPiece.m_clSurface = 20

bufSBuff est un Buffer
Sérialise(gclHabitation,bufSBuff,psdXMLAgrégé)


Dans le Buff c'ets presque bon!!!!!!
<Maison>
<Année>2000</Année>
<DefinitionPieces>
<CDefinitionPieces> // <------- !!!
<DefinitionPiece>
<Nom>Salon</Nom>
<Surface>40</Surface>
</DefinitionPiece>
</CDefinitionPieces> // <------- !!!
<CDefinitionPieces> // <------- !!!
<DefinitionPiece>
<Nom>Cuisine</Nom>
<Surface>20</Surface>
</DefinitionPiece>
</CDefinitionPieces> // <------- !!!
</DefinitionPieces>
</Maison>


J'ai le <CDefinitionPieces> en trop !! qui ne correspond a aucun sérialise à la ligne 4 / 9 / 10 / 15
Je pense que c'est la déclaration des classes qui déconne, mais je ne vois pas ou j'ai merdé !

Merci à vous

BON DEV
Membre enregistré
61 messages
Posté le 12 décembre 2025 - 16:09
Bonjour
Vous devez supprimer ce bout de code :
CDefinitionPieces est une Classe
m_clDefinitionPiece est un CDefinitionPiece <Sérialise = "DefinitionPiece">
FIN


Et modifier ceux-ci :
CMaison est une Classe
m_clAnnée est un entier <Sérialise = "Année">
m_clDefinitionPieces est un tableau <Sérialise = "DefinitionPieces"> de CDefinitionPiece
FIN


CDefinitionPiece est une Classe , Sérialise="DefinitionPiece"
m_clNom est une chaîne <Sérialise = "Nom">
m_clSurface est un entier <Sérialise = "Surface">
FIN


Cordialement.
Message modifié, 12 décembre 2025 - 16:12
Membre enregistré
394 messages
Posté le 12 décembre 2025 - 16:26
Merci pour la réponse rapide Sylvain
En effet la classe CDefinitionPieces ne sert a rien.

Ca fonctionne merci, beaucoup.

BON DEV
Membre enregistré
394 messages
Posté le 12 décembre 2025 - 19:12
Décidement j'ai du mal avec le sérialise des tableaux !!

si dans l'exmple je veux ajouter Les Radiateurs sous la formes ci-dessous:
Maison>
<Année>2000</Année>
<DefinitionPieces>
<DefinitionPiece>
<Nom>Salon</Nom>
<Surface>40</Surface>
</DefinitionPiece>
<DefinitionPiece>
<Nom>Cuisine</Nom>
<Surface>20</Surface>
</DefinitionPiece>
</DefinitionPieces>
<Radiateurs>
<Radiateur>2000W</Radiateur>
<Radiateur>3000W</Radiateur>
</Radiateurs>
</Maison>


Avec le code
CRadiateur est une Classe
m_sRadiateur est une chaîne <Sérialise = "Radiateur">
FIN

CMaison est une Classe
m_clAnnée est un entier <Sérialise = "Année">
m_clDefinitionPieces est un tableau <Sérialise = "DefinitionPieces"> de CDefinitionPiece
m_clRadiateurs est un tableau <Sérialise = "Radiateurs"> de CRadiateur
FIN


J'ai :
<Radiateurs>
<CRadiateur> <---- !!!
<Radiateur>2000W</Radiateur>
</CRadiateur> <---- !!!
<CRadiateur> <---- !!!
<Radiateur>3000W</Radiateur>
</CRadiateur> <---- !!!
</Radiateurs>


et avec le Code
CRadiateur est une Classe <Sérialise = "Radiateur">
m_sRadiateur est une chaîne
FIN


J'ai
<Radiateurs>
<Radiateur>
<m_sRadiateur>2000W</m_sRadiateur> <--- m_sRadiateur !!!!
</Radiateur>
<Radiateur>
<m_sRadiateur>3000W</m_sRadiateur>
</Radiateur>
</Radiateurs>


il doit y avoir une autre config que je n'ai pas trouvé!!
je penses c'est ça qui n'est pas bon ?
m_clRadiateurs est un tableau <Sérialise = "Radiateurs"> de CRadiateur


Merci à vous

BON DEV