Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi probleme mit tstringlist (https://www.delphipraxis.net/139379-probleme-mit-tstringlist.html)

gangs-taas 27. Aug 2009 17:51


probleme mit tstringlist
 
hey,
ich muss schon wieder eine anfängerfrage stellen ...
also ich habe eine Tstringlist und ich weiß 100% das da leerzeilen drin sind.
die wollte ich jetzt hier mit löschen


Delphi-Quellcode:
  for i := 0 to Terminliste.Count do
  begin
    if Terminliste[i] = ' ' then
    Terminliste.Delete(i);
  end;

aber das geht nicht

wenn i eigl. auf eine leerzeile weisen müsste löscht er die einfach trotzdem nicht ...

wisst ihr wieso nicht ?

lg ^^

mkinzler 27. Aug 2009 17:54

Re: probleme mit tstringlist
 
Delphi-Quellcode:
for i := 0 to Terminliste.Count-1 do
  begin
    if Trim(Terminliste[i]) = '' then
    Terminliste.Delete(i);
  end;

Tryer 27. Aug 2009 17:56

Re: probleme mit tstringlist
 
Ja.

Wenn Du Element 3 löscht, rutschen alle weiteren nach vorne. Wenn du dann ab Element 4 weitersuchst hast Du ein Element übersprungen.

Delphi-Quellcode:
for i:= Pred(Count) downto 0
MfG,
Dirk

gangs-taas 27. Aug 2009 18:01

Re: probleme mit tstringlist
 
danke


hm.. es gibt immer noch leerzeilen darin :-D
sehr komisch :-D

edit.

der fehler ist aber anscheindend irg. anders :-D

danke
sorry für die anfänger fragen immer ...

MacGuyver 28. Aug 2009 13:57

Re: probleme mit tstringlist
 
Moin :hi:

Ist doch ganz einfach. Mit einer For-Schleife geht das nicht. Schau:

Delphi-Quellcode:
i := 0;
while i < Terminliste.Count do
begin
  if Trim(Terminliste[i]) = '' then
    Terminliste.Delete(i)
  else
    Inc(i);
end;
Nicht getestet, sollte aber laufen.


Stefan

p80286 28. Aug 2009 14:05

Re: probleme mit tstringlist
 
Zitat:

Zitat von MacGuyver
Moin :hi:

Ist doch ganz einfach. Mit einer For-Schleife geht das nicht. Schau:

Stimmt leider nicht!

wie Dirk in #3 geschrieben hat
Delphi-Quellcode:
for i:= Pred(l.Count) downto 0 do
  if length(l[i])=0 then l.delete(i);
in den "Leerzeilen" könnten aber auch Blanks enthalten sein, dann
Delphi-Quellcode:
if length(trim(l[i]))=0 then l.delete(i);
Gruß
K-H

MacGuyver 28. Aug 2009 14:55

Re: probleme mit tstringlist
 
Ach so, rückwärts... :oops:

Was ist der Unterschied zwischen Trim("") = "" und Length(Trim("")) = 0 ??? Ich kenne da keinen. Das ist doch Geschmackssache, was man programmiert.

Die Leerzeichen werden doch von Trim entfernt, oder?


Stefan

p80286 28. Aug 2009 15:06

Re: probleme mit tstringlist
 
sollte eigentlich kein Unterschied sein.

Ich arbeite lieber mit length damit ich keine vertipper a'la ' ' habe.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:55 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