Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.247 Beiträge
 
Delphi 12 Athens
 
#4

Re: doppelte einträge löschen

  Alt 3. Mär 2004, 11:45
Ist ja auch richtig so. Wenn du was löschst, dann wird ja die Liste kürzer und irgendwann kommst du halt übers Ende hinaus.

Delphi-Quellcode:
Procedure TForm1.double_delClick(Sender: TObject);
  Var i, k: Integer;

  Begin
    For i := ListBox1.Count - 1 downto 1 do
      For k := i - 1 down 0 do
        If ListBox1.Items.Strings[i] = ListBox1.Items.Strings[k] Then
          ListBox1.Items.Delete(k);
  End;
In solchen Fällen kommst du besser, wenn du rückwärts Wählen lässt, oder eine Andere Art von Schleife verwendest.

Delphi-Quellcode:
Procedure TForm1.double_delClick(Sender: TObject);
  Var i, k: Integer;

  Begin
    i := 0;
    While i < ListBox1.Count do Begin
      k := 0;
      While k < ListBox1.Count do
        If ListBox1.Items.Strings[i] = ListBox1.Items.Strings[k] Then
          ListBox1.Items.Delete(k) Else Inc(k);
      Inc(i);
    End;
  End;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat