![]() |
Listenindex überschritten bei Count
Hallo,
Ich habe folgendes vor: Ich erstelle eine Datei, welche sich die Strings aus einer anderen Datei holt. Da ich aber nur die erste und letzte Zeile brauche, wollte ich den Rest einfach wieder löschen. Nun hab ich aber folgenden Feher:
Delphi-Quellcode:
Was ist hier verkehrt?
procedure TMomFiles.DreiSekDateiFuellen(const Filename: string);
var F: TStringList; LogDatei, DatName : String; i : integer; begin DatName := extractfilepath(application.exename)+'Mom3sek_'+Kennung+'.txt'; F := TStringList.Create; try LogDatei := extractfilepath(application.exename)+'mom'+Kennung+'.log'; F.LoadFromFile(Logdatei); for i := 2 to F.Count-1 do [b]// Fehler: ListenIndex überschreitet das Maximum[5][/b] begin F.Delete(i); end; F.SaveToFile(DatName); finally F.Free; end; end; |
Re: Listenindex überschritten bei Count
Guten Morgen,
indizierte Listen immer rückwärts löschen. Grüße Klaus |
Re: Listenindex überschritten bei Count
Probier es mal damit:
Delphi-Quellcode:
procedure TMomFiles.DreiSekDateiFuellen(const Filename: string);
var F: TStringList; LogDatei, DatName : String; i : integer; begin DatName := extractfilepath(application.exename)+'Mom3sek_'+Kennung+'.txt'; F := TStringList.Create; try LogDatei := extractfilepath(application.exename)+'mom'+Kennung+'.log'; F.LoadFromFile(Logdatei); for i := F.Count-1 downto 2 do begin F.Delete(i); end; F.SaveToFile(DatName); finally F.Free; end; end; |
Re: Listenindex überschritten bei Count
Zitat:
|
Re: Listenindex überschritten bei Count
Vielen Dank, es geht. Das muss man natürlich wissen... Aber woher.. ?
Gibt es sonst noch eine andere (bessere) Möglichkeit aus einer Datei die erstel und letzte Zeile zu lesen? |
Re: Listenindex überschritten bei Count
Zitat:
Zitat:
|
Re: Listenindex überschritten bei Count
Hallo,
Zitat:
mit StringList ist es am einfachsten. Statt alles ausser der 1. und letzten Zeile zu löschen, mache doch folgendes: SL_1: TStringList; // alle Zeilen SL_2: TStringList; // nur die 1. und letzte Zeile SL_1.LoadFromFile usw. SL_2.Add(SL_1[0]; SL_2.Add(SL_1[SL_1.Count-1]; jetzt noch abfangen, wenn SL_1 nur eine Zeile enthält und das wars. Heiko |
Re: Listenindex überschritten bei Count
Zitat:
Delphi-Quellcode:
nicht getan?
F.LoadFromFile(Logdatei);
|
Re: Listenindex überschritten bei Count
Doch hast du. Ich wollte deine Frage nur erschöpfend beantworten und habe mich dabei wohl wiederholt.
|
Re: Listenindex überschritten bei Count
:-D Trotzdem Danke
Heiko, deine Idee hab ich umgesetzt, ist für das weitere Programm sinvoller... Danke. Bis demnächst |
Re: Listenindex überschritten bei Count
STOP :bouncing4:
Mir fällt noch was ein. Also ich will ja die erste Zeile nur einmal. Aber die letzte Zeile ändert sich immer in der geg Datei und muss immer an die neue Datei hinten angehängt werden. Wie kann ich testen, ob die Datei sich geändert hat? Über einen Timer? Oder wie? |
Re: Listenindex überschritten bei Count
Bitte erstell für eine neue Frage auch einen neuen Thread. Danke.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:21 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