Einzelnen Beitrag anzeigen

JohannesK

Registriert seit: 17. Jul 2003
Ort: Abtwil
118 Beiträge
 
Delphi 2010 Professional
 
#1

Einlesen von XML - ungültige Zeigeroperation

  Alt 27. Apr 2010, 11:18
Hallo,

ich habe ein merkwürdiges Problem beim Einlesen einer selbst generierten XML-Datei (soll als eine Art strukturierte ini dienen).

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, dateutils, XMLIntf, XMLDoc, strutils, StdCtrls, ComCtrls;


function GetIniDaten:boolean;
var XmlDat : TXMLDocument;
    i,j, kn, knl, t, lc : integer;
    Nodelist, subnodelist : IXMLNodelist;
begin
  // laden der abgespeicherten XML-Konfiguration
  try
  result := true;

  if not fileexists('datei.xml') then
    begin
      result := false;
      exit;
    end;

  XmlDat := TXMLDocument.Create('datei.xml');
  XmlDat.loadfromfile('datei.xml');
  XmlDat.active := true;
  nodelist := xmldat.ChildNodes[0].ChildNodes;

  for j := 0 to nodelist.count-1 do
    begin
      // hier folgt der (funktionierende) Code, auch wenn auskommentiert tritt der Fehler auf

   end;
   xmldat.active := false;
   xmldat.free;

  except
  // result := false;
  end;
end;
Der Fehler tritt erst am Ende der Funktion auf: Invalid Pointer
Wird die for-Schleife auch auskommentiert, kommt der Fehler nicht, ebensowenig wenn kein Verweis auf die Childnodes erfolgt.
Was hab' ich übersehen?

Version ist 2010 Professional
mit freundlichem Gruss

So einfach wie möglich. Aber nicht einfacher.
  Mit Zitat antworten Zitat