Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi StringList fasst zu wenig Einträge!? (https://www.delphipraxis.net/116032-stringlist-fasst-zu-wenig-eintraege.html)

Duser1 22. Jun 2008 01:09


StringList fasst zu wenig Einträge!?
 
Hallo,

ab einer bestimmten Anzahl von Einträgen will die StringList irgendwie nicht mehr.
Habe hier z.B. eine in die 30.000 Einträge rein soll, es kommer dann aber "Listenindex überschreitet das Maximum (22306).
Wenn ich sagen wir z.b. nur 2000 Einträge reinmachen möchte, geht es Problemlos, aber ab einer gewissen Anzahl eben der Fehler.

Was kann ich alternativ benutzen?

michaelg 22. Jun 2008 02:05

Re: StringList fasst zu wenig Einträge!?
 
Ein tStringlist-Objekt kann 2.147.483.647 Zeilen, jedenfalls noch bei Delphi 5 und ich glaube nicht, daß es weniger geworden ist. Mit welcher Delphi-Version arbeitest Du?

Es macht den Eindruck, als ob Du auf einen Index zugreifen willst, der größer als die Anzahl der Zeilen in der Stringlist ist.

Bsp.:
Delphi-Quellcode:
procedure LassKnallen;
  var
    sl:tStringlist;
  begin
    sl:=tStringlist.Create;
    sl.Add('Das ist Zeile1 und erreichbar mit sl[0]');
    sl.Add('Das ist Zeile2 und erreichbar mit sl[1]');
    sl.Add('Das ist Zeile3 und erreichbar mit sl[2]');
    sl.Add('Das ist Zeile4 und erreichbar mit sl[3]');
   
    try
      showmessage(sl[8]);
    except
      on e:exception do begin
        showmessage('Du wolltest den 9. Eintrag, obwohl nur '+inttostr(sl.Count)+' Einträge drin sind. '+#13#10+
                    'Hier Deine Fehlermeldung: '+#13#10+e.Message);
      end;
    end;
    sl.free;
  end;
Wie fügst Du die Zeilen ein?
Wie löscht Du Zeilen raus?
Wie greifst Du auf die Zeilen zu?

Christian Seehase 22. Jun 2008 02:13

Re: StringList fasst zu wenig Einträge!?
 
Moin Duser,

also 30000 Einträge sind für eine StringListe überhaupt kein Problem.
Die Fehlermeldung deutet darauf hin, dass Du einen Index ansprichst, der grösser ist, als die Anzahl der enthaltenen Zeilen.

Ich vermute mal, dass Du nicht berücksichtigt hast, dass die Indizes bei 0 beginnen, und bis Count-1 gehen.

Hansa 22. Jun 2008 02:16

Re: StringList fasst zu wenig Einträge!?
 
Jetzt kommt mir um die Uhrzeit noch tatsächlich einer zuvor. :zwinker: Sogar zwei. :shock:

Zitat:

Zitat von OH von D7
Integer -2147483648..2147483647 32 Bit, mit Vorzeichen

Liefere etwas Quelltext und überprüfe mal den Index der Liste. Verwunderlich ist eigentlich die komische angemeckerte Zahl 22???. :shock:

michaelg 22. Jun 2008 03:10

Re: StringList fasst zu wenig Einträge!?
 
jo, Chistian hat Recht, hört sich nach dem klassischen

Delphi-Quellcode:
for i:= 0 to sl.count do begin
end;
an. Aber es muß
Delphi-Quellcode:
for i:= 0 to sl.count-1 do begin
end;
heissen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz