![]() |
XML-Dateien lesen mit TXMLDocument
Hallo,
nachdem ich schon sehr viele meiner Probleme mit Hilfe des Forums lösen konnte, erst einmal Danke an alle die hier Ihr Wissen teilen. Heute habe ich jedoch ein Prob, dass ich nicht finden kann. Ich möchte eine XML-Datei einlesen, mein Code funkt wenn ich Ihn in einem einzelnen Projekt starte. Wenn Ihn jedoch in einem Thread starte bekomme ich folgende Exception: ...EInvalidPointer mit Meldung 'Ungültige Zeigeroperation'. Wenn ich die Maus über die beTreffende Zeile im Debugmodus halte bekomme ich :Privilegierte Instruktion bei 0125D204
Delphi-Quellcode:
auch mit folgender Version bekomme ich den selben Fehler.
VAR
Files : TStrings; aFile : String; XML : TXMLDocument; RootNode : IXMLNode; Node : IXMLNode; ..... if not DoNothing then Begin XML := TXMLDocument.Create('c:\xml\out\bb3.xml'); for i := 0 to Files.Count -1 do begin //XML.LoadFromFile(a); xml.Active:=True; RootNode := xml.DocumentElement; ....
Delphi-Quellcode:
Statt xml.DocumentElement habe ich auch schon xml.childnodes['Params'] getestet.
.....
aFile:='C:\xml\out\bb3.xml'; if not DoNothing then Begin XML := TXMLDocument.Create(nil); for i := 0 to Files.Count -1 do begin XML.LoadFromFile(aFile); xml.Active:=True; RootNode := xml.DocumentElement; .... --> übrigens das Schreiben eine XML-Datei klappt auch im Thread. Gruß Ralf |
Re: XML-Dateien lesen mit TXMLDocument
Führe vorher mal
![]() ![]() |
Re: XML-Dateien lesen mit TXMLDocument
Hi,
ein CoInitialize(nil); ist schon in der EXECUTE procedure enthalten, ist es nötig in jeder weiteren procedure ein CoInitialize zu starten? Leider bekomme ich auch beim Test mit CoInitialize in dieser procedure den selben Fehler wie zuvor. Gruß Ralf |
Re: XML-Dateien lesen mit TXMLDocument
Ersetze mal alle Klassen durch Interfaces. Alle Probleme mit TXMLDocument rührten bei mir bisher daher, dass ihc Klassen und Interfaces vermischt habe. Warum das nicht funktioniert steht auf einem anderen Blatt...
Edit: Ich sehe gerade es geht um Threads... dann liegt es wahrscheinlich an etwas anderem, wenn es sonst funktioniert, sorry. |
Re: XML-Dateien lesen mit TXMLDocument
Ja, ich denke auch es muss etwas mit Threading zu tun haben, denn wie gesagt, wenn ich die procedure in einem Test in einem eigenen vcl setze klappt es. Was mir zu denken gibt ist : Privilegierte Instruktion bei 0125D204 . Leider bin ich Anfänger (3Monate) und komme einfach nicht weiter. :wall: :wall:
Hat noch jem. eine Idee? oder sollte ich auf eine andere Möglichkeit zum lesen von XML umsteigen? Ich fand nur TXMLDocument sieht recht einfach aus. Gruß Ralf |
Re: XML-Dateien lesen mit TXMLDocument
Zitat:
Delphi-Quellcode:
(statt TXMLDocument), böse Fehler und Abstürze sind sonst möglich.
XML : IXMLDocument;
Und für jeden Thread einen eigene Instanz von IXMLDocument verwenden. |
Re: XML-Dateien lesen mit TXMLDocument
Hallo,
Hm, dass mit IXMLDOKUMENT habe ich versucht, dann bekomme ich eine Zugriffsverletzung, beim laden der XML-Datei. :( :( Diesmal habe ich das Problem auch wenn ich mir in einer TEST.pas einen Klickbutton mit dem Laden versehe, und nicht nur im Thread. Scheinbar habe ich die Tomaten vom Freitag immer noch auf den Augen. grrr was mache ich jetzt schon wieder falsch...
Delphi-Quellcode:
Sollte man grundsätzlich auf TXMLDocument verzichten?
procedure TForm1.Button1Click(Sender: TObject);
VAR lXML : iXMLDocument; Node : IXMLNode; RootNode : IXMLNode; begin lxml.LoadFromFile('c:\XML\out\Test.xml'); lxml.Active:=true; // RootNode:= lXML.DocumentElement; RootNode := lXML.ChildNodes['Params']; Node:= Rootnode.ChildNodes['UserInfos']; showmessage(Node.ChildNodes['Login'].Text); lxml:=nil; end; Gruß Ralf |
Re: XML-Dateien lesen mit TXMLDocument
:wall: :wall: :wall:
okok manchmal hilft einfach mal 100 durch 7 teilen.... natürlich von Hand, bis auf mind. 20 Stellen nach dem Komma... egal wie, Hauptsache man denkt mal an was anderes!
Delphi-Quellcode:
Danke an ALLE die mir geholfen haben.
lXML := TXMLDocument.Create(nil) as iXMLDocument;
--> Aber, ist es erlaubt TXMLDocument mit nil aufzurufen? Gruß Ralf |
Re: XML-Dateien lesen mit TXMLDocument
Zitat:
|
Re: XML-Dateien lesen mit TXMLDocument
Zitat:
Delphi-Quellcode:
kannst du dir imo sparen.
as iXMLDocument
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz