AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe bei Stringlist.delete

Ein Thema von Franzelchen · begonnen am 29. Jan 2008 · letzter Beitrag vom 29. Jan 2008
Antwort Antwort
Franzelchen

Registriert seit: 22. Mär 2007
82 Beiträge
 
#1

Hilfe bei Stringlist.delete

  Alt 29. Jan 2008, 09:32
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!!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Hilfe bei Stringlist.delete

  Alt 29. Jan 2008, 09:36
Delphi-Quellcode:
For i := Stringlist.Count - 1 downto 0 do
  if length(StringList[i]) < 2 then
    Stringlist.delete(i);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Franzelchen

Registriert seit: 22. Mär 2007
82 Beiträge
 
#3

Re: Hilfe bei Stringlist.delete

  Alt 29. Jan 2008, 09:39
Ich bedanke mich für die schnelle Hilfe!!
  Mit Zitat antworten Zitat
Franzelchen

Registriert seit: 22. Mär 2007
82 Beiträge
 
#4

Re: Hilfe bei Stringlist.delete

  Alt 29. Jan 2008, 12:08
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??
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Hilfe bei Stringlist.delete

  Alt 29. Jan 2008, 12:14
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;
  Mit Zitat antworten Zitat
Klaus01

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

Re: Hilfe bei Stringlist.delete

  Alt 29. Jan 2008, 12:15
Delphi-Quellcode:
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;]
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Hilfe bei Stringlist.delete

  Alt 29. Jan 2008, 12:16
Hi,

besser so:

Delphi-Quellcode:
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;
Grüße vom marabu

EDIT: Sorry, ich stand wohl im Abseits ...
  Mit Zitat antworten Zitat
Franzelchen

Registriert seit: 22. Mär 2007
82 Beiträge
 
#8

Re: Hilfe bei Stringlist.delete

  Alt 29. Jan 2008, 12:22
Das Löschen der Semikolon hinter do und then haben die Sache gerettet.

Es funktioniert fehlerfrei. Danke Klaus und allen die geholfen haben.
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:59 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