AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi seltsames verhalten von IXMLNode
Thema durchsuchen
Ansicht
Themen-Optionen

seltsames verhalten von IXMLNode

Ein Thema von DamienHoo · begonnen am 31. Aug 2009 · letzter Beitrag vom 1. Jan 2010
Antwort Antwort
DamienHoo

Registriert seit: 31. Aug 2009
1 Beiträge
 
#1

seltsames verhalten von IXMLNode

  Alt 31. Aug 2009, 17:43
hi,

ich hab ein wirklich seltsames problem mit IXMLNode und ich komm einfach auf keinen gruenen zweig. vielleicht hat jemand eine idee woran es liegen koennte.

meine procedure soll die tage eines jahres in eine xmldatei schreiben. die daten werden vorher in einer schleife erstellt (weil da noch die kalenderwoche und der tag der woche und so dazu muss) und werden in einem dafuer vorgesehen record im speicher gehalten.

in der schleife wird dabei (ausgehend vom startdatum bsp: 1.1.2009 welches als TDateTime vorliegt) nach jedem durchlauf der TDateTimeWert via IncDay aus den dateutils um 1 erhoeht.
die schleife lautet ungefaehr:

Delphi-Quellcode:
for i=1 to iTageImJahr do begin
   fuelle die records
   ...
   IncDay(aktuellerTag,1);
end;
danach dann werden die knoten der xmldatei aufgrund der daten gebaut.

nachdem die ersten beiden knoten via
Delphi-Quellcode:
fXMLDoc : IXMLDocument
node,node2: IXMLNode;


fXMLdoc := newXMLDocument;
fXMLdoc.Encoding := 'iso-8859-1';
node := fXMLdoc.AddChild('data').AddChild('jahr');

node2 := node.AddChild('kw_1');
erstellt wurden, stuerzt das programm beim naechsten knoten (node2) mit einem speicherfehler ab.
obwohl node2 eigentlich nil sein sollte ist es das zur laufzeit nicht sondern es ist ein pointer auf ein IXMLNode Objekt aber NUR wenn ich das TDateTime in der schleife erhoehe. kommentiere ich das IncDay aus (was die daten dann sinnfrei macht) passiert das nicht und alle knoten im xml-baum werden angelegt weil node2 bis zur zuweisung nil bleibt.

hat irgendwer eine ahnung was da passiert ?

zur info:
* das ganze passiert in einer klasse, fXMLdoc ist eine private klassenvariable, die nodes ebenso wie alles andere sind lokale procedure variablen.
* IncDay macht nix weiter als einen TDateTime value mit der anzahl tage zu addieren (in diesem fall also result := value+1)
* node und node2 werden nirgends verwendet und sich auch nicht global.



fuer anregungen waer ich super dankbar weil mir faellt kein logischer grund fuer diesen fehler ein.



mfg
damien
  Mit Zitat antworten Zitat
VT

Registriert seit: 9. Dez 2002
11 Beiträge
 
#2

Re: seltsames verhalten von IXMLNode

  Alt 1. Jan 2010, 16:25
also ich glaube da musst du mal mehr code anhängen, es ist nicht wirklich ersichtlich was da genau gemacht wird.
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#3

Re: seltsames verhalten von IXMLNode

  Alt 1. Jan 2010, 17:13
Hi!

Du musst auch das DocumentElement setzten., z.b:
Delphi-Quellcode:
.......
var xml : IXMLDoc;
    haupt : IXMLNode;
begin
xml:= NewXmlDocument;
xml.Active := true;
haupt := xml.CreateNode('Orgadata');
xml.DocumentElement := haupt;
xml.encoding:='UTF-8';
xml.options:=xml.options+[doNodeAutoIndent];
.......
end;
Gruß!
Lars
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz