![]() |
Maximum überschreitet 0
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:
Delphi-Quellcode:
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; |
Re: Maximum überschreitet 0
Hi,
laut deines Sources muss diese Zeile Zitat:
Code:
lauten. ;)
subNode := kunden.item[i].selectSingleNode([b]ANames[/b][j]);
Chris |
Re: Maximum überschreitet 0
Liste der Anhänge anzeigen (Anzahl: 1)
Ohje. :wall: Danke für deine Hilfe. :wall:
Mhm ein Problem hab ich da noch. Unzwar wird die Xml Datei nichtz vollstänig geladen. Volgendes steht drinne:
Code:
Was angezeit wird seht ihr auf dem Screenshot im Anhang.
<?xml version="1.0" encoding="ISO-8859-1"?>
<kundendatenbank> <kunde> <id>1</id> <name>Name 1</name> <vorname>Vorname 1</vorname> </kunde> <kunde> <id>2</id> <name>Name 2</name> <vorname>Vorname 2</vorname> </kunde> </kundendatenbank> |
Re: Maximum überschreitet 0
Hallo!!
Habe geleiches Problem mit Listenindexüberschreitung, aber habe den Rechtschreibfehler nicht drin. Hier mein Quelltext.
Delphi-Quellcode:
MfG Master
procedure TFrmmain.updatememo;
const Name: Array[0..1] of String =('german', 'english'); var words: IXmlDomNodeList; subNode: IXmlDomNode; i, j: integer; begin LVwords.Items.Clear; LVwords.Items.BeginUpdate; words := xmlDoc.documentElement.selectNodes('words'); for i := 0 to words.length -1 do begin subNode := words.item[i].selectSingleNode('german'); LVwords.Items.Add; LVwords.Items[i].Caption := subNode.text; with LVwords.Items[0].SubItems do begin for j := 0 to length(Name) -1 do begin subNode := words.item[i].selectSingleNode(names[j]); if subNode <> nil then Add(subNode.Text) else Add(''); end; end; end; LVwords.Items.EndUpdate end; procedure TFrmmain.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"><vocabulary></vocabulary>'); end else begin xmlDoc.load(fAppPath + Database_FName); end; if xmldoc.parseError.errorCode <> 0 then begin Messagedlg('Das Databasefile ist nicht korrekt' + #10#13+ 'Das Programm wird nun geschlossen.' ,mterror, [mbOK], 0); application.Terminate; end; updatememo; end; |
Re: Maximum überschreitet 0
Hi,
lese dir mal ![]() Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:55 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