![]() |
Delphi-Version: 10.4 Sydney
Zum x-ten: Listenindex außerhalb des gültigen Bereichs
Hallo liebe Helfer,
ähnliche Fragen gibt es hier viele und dennoch habe ich nirgends eine Lösung gefunden:
Delphi-Quellcode:
Die Stringlist Daten hat die Länge Daten.Count. Also sollte ich in einer Iteration alle Elemente mit den Indizes 0 bis Daten.Count-1 erreichen. In der letzten Zeile des Codefragments lasse ich mir die letzte Zeile der Stringlist ausgeben. Wenn ich aber in der for-Schleife wie dargestellt Daten.Count - 1 benutze, bekomme ich den im Betreff genannten Fehler.
procedure TForm1.btnReadClick(Sender: TObject);
var Dateipfad, Rest : String; i, j, ZAnz : Integer; AnzTage : Integer; const SepNach = ';'; SepVor = ','; begin Daten := TStringList.Create; Dateipfad := 'D:\XXXXXX.CSV'; Daten.LoadFromFile(Dateipfad); ledAnz.Text := IntToStr(Daten.Count); // Kommas durch Semikola ersetzen und Punkt durch Kommas for i := 0 to Daten.Count - 1 do begin … Edit4.Text := Daten[Daten.Count - 1]; Wenn ich als Schleifenende aber Daten.Count - 2 nehme, gibt es keinen Fehler und als letzte Zeile wird mir (in einem Memofeld) die Zeile ausgegeben, die ich mir im Edit-Feld als Daten[Count-1] ausgegeben habe. Ich fürchte, ich stehe auf dem Schlauch. Was übersehe/missverstehe ich da? Oswald |
AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs
An welcher Stelle kommt denn der Fehler?
Der Fehler wird kaum in den gezeigten Zeilen des Quelltextes auftreten. |
AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs
Wenn du duch die Daten iterierst sollte das do so aussehen oder?
Delphi-Quellcode:
for i := 0 to Daten.Count - 1 do
begin … Edit4.Text := Daten[i]; |
AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs
Zitat:
Grüße Klaus |
AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs
Zitat:
Delphi-Quellcode:
ist.
Daten.Count > 0
Leider können wir nicht alles sehen, was du zwischen dem
Delphi-Quellcode:
und dem Aufruf von
Daten.LoadFromFile
Delphi-Quellcode:
machst.
Daten[Daten.Count - 1]
|
AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs
Zitat:
Aber den Fehler habe ich im Umfeld der Schleife gefunden: Da wo die drei Punkte stehen, habe ich im Code eine Anweisung mit dem an dieser Stelle nicht definierten Index i. Edit: Oder ist der an dieser Stelle definiert, aber außerhalb des Gültigkeitsbereiches? Wahrscheinlich hätte ich die Brille putzen sollen, dann hätte ich gesehen, dass da ein i und keine 1 steht. Also frei nach Shakespeare „Viel Lärm um (fast) Nichts” Sorry! Also: Scheinbar wurde der Fehler angezeigt, bevor die fehlerhafte Zeile erreicht wurde. Das Fettgedruckte kann mir vielleicht jemand erklären. Gruß Oswald |
AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs
Hallo,
gelöscht. Gruß |
AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs
Das wäre eine vage Vermutung wenn ich jetzt eine Textdatei lade tritt kein Fehler auf.
Gruß |
AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs
"Daten" wird nicht zufällig innerhalb der Schleife verändert?
> z.B. Zeilen gelöscht Ja, es kann manchmal vorkommen, dass der Debugger in der Position verrutscht und der Fehler eigentlich in dem Befehl vor dem angezeigten Stopp liegt. |
AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs
Hallo,
hast Du vielleicht zufällig das Daten[i] als überwachten Ausdruck dringehabt? Und solltest Du das i außerhalb der Schleife benutzt haben, muss doch eine Compilerwarnung gekommen sein.? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 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