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