![]() |
Hilfe bei Stringlist.delete
Hallo!
Ich habe ein Problem bei der Löschung von Einträgen in einer Stringlist. Die Stringlist sieht ungefähr so aus: ___________________________ Heimdal A S Johann __________________________________ Wie bekomme ich die Leerzeilen und die einzeln stehenden Buchstaben gelöscht. Mein Ansatz ungefähr so: For i = 0 to Stringlist-1 if length = 0 then Sringlist.delete(i) Nach erfolgreicher Kompilierung wird Listenindex über Maximum angezeigt. Wie kann ich das Problem lösen??? Wer hilft mir??? Danke!! |
Re: Hilfe bei Stringlist.delete
Delphi-Quellcode:
For i := Stringlist.Count - 1 downto 0 do
if length(StringList[i]) < 2 then Stringlist.delete(i); |
Re: Hilfe bei Stringlist.delete
Ich bedanke mich für die schnelle Hilfe!!
|
Re: Hilfe bei Stringlist.delete
Jetzt hab ich den Code ausprobiert. Leider erscheint nach wie vor: Listenindex über Maximum
Anbei der vollständige Code: [procedure TForm1.Button2Click(Sender: TObject); var SL :TStringList; i :Integer; begin SL := TStringList.Create; SL.LoadFromFile('StringList.tmp'); For i := SL.Count-1 downto 0 do; If Length(SL[i]) < 2 then; SL.Delete(i); RichEdit2.Text := SL.Text; SL.Free; end;] Kann mir jemand helfen?? |
Re: Hilfe bei Stringlist.delete
Delphi-Quellcode:
i := 0;
if sl <> nil then begin while i < sl.Count do if length(trim(sl[i])) < 2 then sl.Delete(i) else inc(i); end; |
Re: Hilfe bei Stringlist.delete
Delphi-Quellcode:
Grüße
procedure TForm1.Button2Click(Sender: TObject);
var SL :TStringList; i :Integer; begin SL := TStringList.Create; SL.LoadFromFile('StringList.tmp'); For i := SL.Count-1 downto 0 do // hier das ; gelöscht If Length(SL[i]) < 2 then // hier auch SL.Delete(i); RichEdit2.Text := SL.Text; SL.Free; end;] Klaus |
Re: Hilfe bei Stringlist.delete
Hi,
besser so:
Delphi-Quellcode:
Grüße vom marabu
procedure CompactStrings(s: TStrings; maxLength: Integer = 0);
var i: Integer; begin for i := Pred(s.Count) downto 0 do if Length(s[i] <= maxLength then s.Delete(i); end; procedure TForm1.Button2Click(Sender: TObject); begin with RichEdit do begin Lines.LoadFromFile('StringList.tmp'); CompactStrings(Lines, 1); end; end; EDIT: Sorry, ich stand wohl im Abseits ... |
Re: Hilfe bei Stringlist.delete
Das Löschen der Semikolon hinter do und then haben die Sache gerettet. :wall:
Es funktioniert fehlerfrei. Danke Klaus und allen die geholfen haben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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