Thema: Delphi Maximum überschreitet 0

Einzelnen Beitrag anzeigen

citybreaker
(Gast)

n/a Beiträge
 
#1

Maximum überschreitet 0

  Alt 21. Aug 2004, 13:28
Mhm also es geht mal wieder um das Xml Tutorial. Hab es mal wieder ausgegraben, da es
nie geklappt hat und ich es nocheinmal probieren wollte.
Unzwar kommt beim starten der Exe immer die Fehlermeldung, dass das Maximum 0 überscheitet wird.
Dann wird folgende Zeile makiert:
subNode := kunden.item[i].selectSingleNode(names[j]);
Hier mal der gesamte Code.
Delphi-Quellcode:
procedure TMainFrm.FormCreate(Sender: TObject);
begin
  fAppPath := ExtractFilePath(Application.Exename);

  xmlDoc := CoDomDocument40.Create;
  xmlDoc.setProperty('NewParser', true);

  if not fileexists(fAppPath + Database_FName) then begin
    xmlDoc.loadXML('<?xml version="1.0"><kundendatenbank></kundendatenbank>');
  end else begin
    xmlDoc.load(fAppPath + Database_FName);
  end;

  if xmlDoc.parseError.errorCode <> 0 then begin
    MessageDlg('Die Xml Datei ist nicht korrekt!' + #13#10 +
               'Programm beendet sich selbstständig.', mtError, [mbOk], 0);
    Application.Terminate;
  end;

  UpdateList;
end;

procedure TMainFrm.UpdateList;
const
  AName: Array[0..1] of String =('name', 'vorname');
var
  kunden: IXmlDomNodeList;
  subNode: IXmlDomNode;
  i, j: integer;
begin
  LView.Items.Clear;
  LView.Items.BeginUpdate;

  kunden := xmlDoc.documentElement.selectNodes('kunde');
  for i := 0 to kunden.length -1 do begin
    subNode := kunden.item[i].selectSingleNode('name');
    LView.Items.Add;
    LView.Items[i].Caption := subNode.text;
    with LView.Items[0].SubItems do begin
      for j := 0 to length(AName) -1 do begin
        subNode := kunden.item[i].selectSingleNode(names[j]);
        if subNode <> nil then
          Add(subNode.Text)
        else
          Add('');
      end;
    end;
  end;

  LView.Items.EndUpdate;
end;
  Mit Zitat antworten Zitat