Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Listenindexüberschreitung (https://www.delphipraxis.net/31554-listenindexueberschreitung.html)

Masterof 11. Okt 2004 10:03


Listenindexüberschreitung
 
Hallo!!

Ich habe ein kleines Wörterbuch geschrieben was seine Daten in einer XML Datei ablegen soll. Es lässt sich auch alles kompilieren,
aber wenn ich es ausführe und ein neues Wort hinzufüge kommt Listenindex überscreitet das Maximum (0).

Die Zeile im Quelltext die er mir dann markiert ist diese.
Delphi-Quellcode:
subnode := words.item[i].selectSingleNode(NAMES[j]);
.

Wo könnte der Fehler da sein.

MfG Master

Luckie 11. Okt 2004 10:05

Re: Listenindexüberschreitung
 
Du versuchst auf das nullte Element zuzugreifen ohne das es existiert. Hast du ein dynamisches Array und vorher nicht die Länge gesetzt mit Delphi-Referenz durchsuchenSetLength?

Treffnix 11. Okt 2004 10:06

Re: Listenindexüberschreitung
 
Es würde helfen, wenn du angeben würdest, von welchem Typ words und Names sind. Prinzipiell geht hinzufügen aber mit Add. Du kannst nichts auswählen, was noch nicht existiert.

FAlter 11. Okt 2004 10:06

Re: Listenindexüberschreitung
 
Der Fehler liegt an dem, was in I oder J steht, befindet sich also eigentlich schon weiter voprne im Code.

Luckie 11. Okt 2004 10:12

Re: Listenindexüberschreitung
 
Zitat:

Zitat von FAlter
Der Fehler liegt an dem, was in I oder J steht, befindet sich also eigentlich schon weiter voprne im Code.

:shock: Von welcher Firma ist deine Glaskugel? Die scheinen ja gute herzustellen.

@Masterof: Ohne mehr Quellcode wird es schwierig. (Zu mindest ohne mich, mit einer veraltetetn Glaskugel. ;) )

Masterof 11. Okt 2004 10:12

Re: Listenindexüberschreitung
 
Hallo!!

also der Fehler tritt auf, wenn ich einen Button dücke, das folgenden Quelltext enthält.

Delphi-Quellcode:
newwords := xmldoc.createElement('word');
 newsub := xmldoc.createElement('id');
 newsub.text := Inttostr(frmmain.lvwords.Items.Count);
 newwords.appendChild(newsub);
 newsub := xmldoc.createElement('german');
 newsub.text := edgerman.Text;
 newwords.appendChild(newsub);
 newsub := xmldoc.createElement('english');
 newsub.text := edenglish.Text;
 newwords.appendChild(newsub);
 xmldoc.save(frmmain.fAppPath + Database_Fname);
 frmmain.updatememo;
 close;
Words ist vom Typ IXMLDOMNodeList
und Names ist ein Array [0..2] vom Typ String und ich habe Werte eingetragen.

MfG Master

Treffnix 11. Okt 2004 10:15

Re: Listenindexüberschreitung
 
Und wo genau rufst du da jetzt die Zeile von oben mit dem Fehler auf?

Masterof 11. Okt 2004 10:17

Re: Listenindexüberschreitung
 
Hallo!!

Oh Sorry, das kommt wenn ich den Listview Update und er die Daten lesen soll. Der Fehler aber muss dort stehen, weil er in der
anderen Prozedur nur noch die Daten ließt.

Master

FAlter 11. Okt 2004 10:18

Re: Listenindexüberschreitung
 
Zitat:

Zitat von Luckie
:shock: Von welcher Firma ist deine Glaskugel? Die scheinen ja gute herzustellen.

Wieso? Entweder hat er was gemacht, dass in I oder J die falschen Werte stehen (und zwar vorher im Code) oder er hat ein Add oder ein SetLength vergessen (und zwar vorher).

So scheint es mir jedenfalls nach der einen zeile Code. Ich frage mich bloß, wo sie im zweiten Code abgeblieben ist, ich finde sie nicht wieder :(

Masterof 11. Okt 2004 10:21

Re: Listenindexüberschreitung
 
Hallo!!

Also, der Fehler kommt daher, weil er nichts in die XML Datei schreibt. Er legt zwar die Sektionen richtig an, übernimmt aber die Daten nicht. Der Fehler mit dem Listenindex kommt deshalb weil er keine Daten zum einlesen hat.
Der Gehler also liegt dann doch in den von mir angegeben Prozedur.

Master


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.
Seite 1 von 2  1 2      

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