Hi Lucius!
so müsste es hoffentlich funktionieren:
Delphi-Quellcode:
procedure KillDuplicates(SL: TStringList);
var
I, F: integer;
begin
for I := SL.Count - 1 downto 0 do
for F := SL.Count - 1 downto 0 do
if I <> F then
if SL[I] = SL[F] then
begin
SL.Delete(F);
Break;
end;
end;
Edit: Alternativ könntest du auch beim Hinzufügen der Einträge zu deiner Stringliste die Eigenschaft Duplicates := dupIgnore setzen. Damit werden gleiche Items nicht mehr Hinzugefügt, und du sparst dir das KillDuplicates mit den zwei Schleifen.
Edit2:
Zitat:
Gibt es denn eine Function die doppelte Eintraege in einer Listview loescht?
Das halte ich pers. nicht für sinnvoll, du solltest die Daten (wie du es ja bereits machst) vor dem Anzeigen in der Listview auf Duplikate prüfen und ggf. löschen. Außerdem nicht sich das von der Funktion her egtl. nicht viel, sei es ListView oder StringList.
Da ich annehme, dass du die Torrents in einer Listview dem Benutzer anzeigen willst, plädiere ich für die erste Version (also vorher Duplikate raus, dann anzeigen), da es den Benutzer ja nicht zu interessieren braucht, ob da Duplikate drin sind oder waren. Außerdem dürfte es schneller gehen.