Einzelnen Beitrag anzeigen

Benutzerbild von Bowler
Bowler

Registriert seit: 8. Sep 2003
Ort: Bochum
148 Beiträge
 
Delphi XE7 Enterprise
 
#7

Re: TStringlist: Delete in einer Schleife

  Alt 5. Sep 2006, 15:47
Zitat von Dax:
Zitat von Tyrael Y.:
downto ist dein freund
Der andere Freund hieße repeat oder while.

Delphi-Quellcode:
i := 0;
while i < list.Count do
begin
  if list[i] = Suchstring then
    List.Delete(i);
  Inc(i);
end;

// bzw

repeat
  if list[i] = Suchstring then
    List.Delete(i);
  Inc(i);
until i = List.Count;
Aber auch nur, wenn list.Count bei jedem Durchlauf aktualisiert wird. Ansonsten gibt es IMHO den gleichen Fehler, wie in einer for-Schleife, da die while- oder repeat-Schleife dann übers Ziel hinaus läuft.

Gruß
Christian
Christian Rüsken
  Mit Zitat antworten Zitat