Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#2

Re: Einlesen von XML - ungültige Zeigeroperation

  Alt 27. Apr 2010, 10:30
XmlDat := TXMLDocument.Create('datei.xml'); Ließt schon die Datei aus ... also nochmal ist garnicht nötig
Delphi-Quellcode:
XmlDat.loadfromfile('datei.xml');
XmlDat.active := true;
NodeList und SubnodeList enthalten womöglich noch referenzen auf Objekte/Interfaces des XML-Dokuments, welches du beim XmlDat.Free eventuell schon gelöscht hast.

Laß mal Probehalber das XmlDat.Free weg
oder stell gleich alles auf Interfaces um. (siehe nachfolgender Code)

Außerdem ist es nicht ratsam einfach so Exceptions unbehandelt zu unterdrücken.

Und bezüglich des Dateinamens ... Was die relativen Pfadangaben betrifft, darüber wurde schon sehr oft im Forum diskutiert.

Delphi-Quellcode:
function GetIniDaten(const Filename: String): boolean;
var XmlDat : IXMLDocument;
    NodeList, SubnodeList : IXMLNodelist;
    i,j, kn, knl, t, lc : integer;
begin
  // laden der abgespeicherten XML-Konfiguration
  if not FileExists(Filename) then
    begin
      result := false;
      exit;
    end;
  XmlDat := TXMLDocument.Create(filename);
  nodelist := xmldat.DocumentElement.ChildNodes;
  for j := 0 to nodelist.count-1 do
    begin
      // hier folgt der (funktionierende) Code, auch wenn auskommentiert tritt der Fehler auf

   end;
  result := true;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat