Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 

Re: Doppelte Einträge aus ListBox entfernen

  Alt 29. Sep 2005, 16:51
Zitat von ManuMF:
Die andere Lösung funktionoiert auch. Ich werde mir mal beide merken.
Aber welche ist besser / schneller?
Du bist jünger als ich. Also bist du dran mit "Jugend forscht"
Bei sehr grossen Listen ist sortieren mit Quicksort und eliminieren der Duplikate wahrscheinlich schneller.
Wenn die Liste schon sortiert ist, dann gibt's noch folgende Funktion:
Delphi-Quellcode:
function RemoveDups(s:TStrings):Integer;
var
   i : Integer;
   s_old : string;
begin
   s_old := '999678568';
   Result := 0;

   Assert(assigned(s));

   TrimTStrings(s);

   for i := s.Count-1 downto 0 do
   begin
      if s[i] = s_old then
      begin
         s.Delete(i);
         Inc(Result);
      end
      else
         s_old := s[i];
   end;
end;
Andreas
  Mit Zitat antworten Zitat