AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Zum x-ten: Listenindex außerhalb des gültigen Bereichs
Thema durchsuchen
Ansicht
Themen-Optionen

Zum x-ten: Listenindex außerhalb des gültigen Bereichs

Ein Thema von OsCor · begonnen am 9. Jan 2022 · letzter Beitrag vom 16. Jan 2022
Antwort Antwort
Seite 1 von 2  1 2      
OsCor

Registriert seit: 1. Jan 2009
Ort: Kenzingen, Südbaden
99 Beiträge
 
Delphi 10.4 Sydney
 
#1

Zum x-ten: Listenindex außerhalb des gültigen Bereichs

  Alt 9. Jan 2022, 08:16
Delphi-Version: 10.4 Sydney
Hallo liebe Helfer,

ähnliche Fragen gibt es hier viele und dennoch habe ich nirgends eine Lösung gefunden:

Delphi-Quellcode:
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];
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.
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
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.332 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs

  Alt 9. Jan 2022, 08:56
An welcher Stelle kommt denn der Fehler?
Der Fehler wird kaum in den gezeigten Zeilen des Quelltextes auftreten.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#3

AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs

  Alt 9. Jan 2022, 09:10
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];
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs

  Alt 9. Jan 2022, 09:32
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]; // <-
.. wenn die Zuweisung ausserhalb der for-Schleife passiert, kann es sein, dass i nicht mehr definiert (mit den richtigen Werten belegt) ist.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#5

AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs

  Alt 9. Jan 2022, 09:45
Was übersehe/missverstehe ich da?
Du prüfst an der Stelle nicht, ob Daten.Count > 0 ist.

Leider können wir nicht alles sehen, was du zwischen dem Daten.LoadFromFile und dem Aufruf von Daten[Daten.Count - 1] machst.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
OsCor

Registriert seit: 1. Jan 2009
Ort: Kenzingen, Südbaden
99 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs

  Alt 9. Jan 2022, 10:04
An welcher Stelle kommt denn der Fehler?
Der Fehler wird kaum in den gezeigten Zeilen des Quelltextes auftreten.
„Eben doch.” wollte ich gerade schreiben. Ich hatte einen Haltepunkt auf die erste Zeile (also das begin) nach dem for-Statement gesetzt. Da gab es den Fehler schon und das hat mich irritiert. Denn als ich den Haltepunkt auf die erste Anweisung innerhalb der Schleife setzte, war die Fehlermeldung plötzlich weg. Warum es schon vorher geklappt hat mit dem Schleifen-Endpunkt Daten.Count - 2 kann ich nicht verstehen.
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

Geändert von OsCor ( 9. Jan 2022 um 10:09 Uhr) Grund: Ergänzung
  Mit Zitat antworten Zitat
mmw

Registriert seit: 10. Sep 2019
Ort: OWL
322 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs

  Alt 9. Jan 2022, 10:06
Hallo,

gelöscht.
Gruß

Geändert von mmw ( 9. Jan 2022 um 21:05 Uhr)
  Mit Zitat antworten Zitat
mmw

Registriert seit: 10. Sep 2019
Ort: OWL
322 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs

  Alt 9. Jan 2022, 20:14
Das wäre eine vage Vermutung wenn ich jetzt eine Textdatei lade tritt kein Fehler auf.

Gruß

Geändert von mmw ( 9. Jan 2022 um 20:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#9

AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs

  Alt 10. Jan 2022, 01:24
"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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Zum x-ten: Listenindex außerhalb des gültigen Bereichs

  Alt 10. Jan 2022, 05:12
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.?
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 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