|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||||
|
Membre du Club
![]() |
Bonjour tout le monde.
J'ai un programme écrit en C++ qui transforme un fichier XML en un fichier TXT. J'ai utilisé TinyXML comme parser. Le programme me retourne l'erreur suivante: Citation:
Code :
Code :
Mes tests: Est ce que le problème de mémoire pourrait venir de l'espace entré à la place de la valeur de la balise Adresse? J'ai remplacé l'espace par une valeur aléatoire est ça plante plus !!! Ma question: Est ce que le fait d'avoir un espace à la place du texte dans une balise XML peut causer un problème de segmentation ? Sachant que je code en C++? Merci d'avance pour vos réponses et remarques. Imad_Ing
__________________
Imad_Ing Softwear Engineer Petit à petit, Rôme est batie |
|||||
|
|
00
|
|
|
#2 | ||||
|
Membre du Club
![]() |
Code :
C'est comme ça que je pointe sur la balise Adresse de mon XML en utilisant TinyXML. Pourrais-je intégrer un test sur la valeur de la balise avant de la prendre ? Quelque chose du genre: Code :
__________________
Imad_Ing Softwear Engineer Petit à petit, Rôme est batie |
||||
|
|
00
|
|
|
#3 |
![]() ![]() |
Je ne connais pas trop TinyXML, mais il semble qu'il s'occupe
- soit de normaliser automatiquement les whitespaces - soit d'ignorer les nœuds whitespaces Dans les deux cas il peut peut-être être configuré pour ne pas le faire. Une balise qui ne contient que des espaces, devient une balise vide quand ses espaces sont normalisés (ou que les nœuds whitespaces sont ignorés). Autrement dit, ton <adresse> </adresse> est lu comme si c'était <adresse/>. Cela signifie qu'il n'a pas d'enfant et que FirstChild() renverra un pointeur nul. C'est cela qu'il faut surveiller. (Je trouve que ce n'est pas très pratique. D'habitude les APIs XML ont des méthodes pour simplifier ce genre de choses. Beurk.) |
|
|
00
|
|
|
#4 | |
|
Membre confirmé
![]() |
Salut,
Citation:
En gros ton prog essaye d'appeler une méthode d'objet sur quelque chose qui est n'existe pas, et donc seg fault.
__________________
Linux because rebooting is just for adding medias |
|
|
|
00
|
|
|
#5 | ||||
|
Membre du Club
![]() |
Bonjour,
Je cherche une méthode pour remédier aux éventuels espaces " " trouvés dans une balise de mon fichier XML, et j'ai appliqué ceci: Code :
C'est la solution que j'ai mis en place pour remplacer un espace " " trouvé dans <adresse> </adresse> par exemple et le remplacer par "". Ca me retourne une erreur d'incompatibilité de pointeurs! Et je ne sais pas de quoi s'agit il ![]() Erreur: Code :
Merci d'avance pour vos remarques et réponses. Imad
__________________
Imad_Ing Softwear Engineer Petit à petit, Rôme est batie |
||||
|
|
00
|
|
|
#6 |
![]() ![]() |
On t'a déjà dit quoi faire. Nous on connaît XML, et manifestement ce n'est pas ton cas. Tu devrais plutôt lire ce qu'on te dit.
Accessoirement, lire quelques tutoriels sur ce que c'est XML, ce que c'est qu'un attribut, un nœud texte, un enfant, et tout ça, ne serait pas du luxe. Par exemple, je vois pas comment tu espérais résoudre quoi que ce soit en faisant intervenir des attributs ici. Accessoirement, mon C++ est rouillé, mais je suis à peu près sûr que ce n'est pas comme ça qu'on compare des chaînes de caractères. Ni qu'on fait un if. Ceci n'ayant aucune importance puisque, comme on te l'a dit, c'est pas ça que tu es censé faire. Ah, et puis les options -pg et -fomit-frame-pointer de g++ ne peuvent pas être utilisées en même temps. Si on pouvait se concentrer sur un problème à la fois... |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() |
Merci ça m'aide beaucoup et ça résout mon problème !!!
Beurk.
__________________
Imad_Ing Softwear Engineer Petit à petit, Rôme est batie |
|
|
00
|
|
|
#8 | ||||||
|
Membre confirmé
![]() |
Comme te le dis thelvin de manière un peu brutal mais non moins instructive, tu devrais lire des cours sur XML.
pour faire simple: Code :
Code :
Citation:
Citation:
__________________
Linux because rebooting is just for adding medias |
||||||
|
|
00
|
|
|
#9 |
![]() ![]() |
De rien. Ce qu'on a dit résout en effet ton problème, et on peut donc en déduire que ça t'aide. Beaucoup ou pas, ça j'en sais rien, ça dépend ce que ça représente pour toi d'éliminer ton problème.
Pas de notre faute si tu décides de faire comme si on avait rien dit. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com