Einzelnen Beitrag anzeigen

fatalerror
(Gast)

n/a Beiträge
 
#13

AW: Duplikate in Stringlist

  Alt 20. Jul 2010, 22:16
Wenn in einer Liste aber bereits vorhandene Duplikate stehen (so wie im ursprünglichen Posting angegeben) würde ich die Liste kopieren, dies sollte bedeutend schneller gehen als das Prüfen mit deiner Routine:

Nur so hingetippt ohne zu überprüfen obs auch funktioniert

Delphi-Quellcode:
var
sl1, sl2:TSTringlist;
i:Integer;
t_start, t_stop:integer;

iLow, iHigh: integer;

begin
sl1:= Tstringlist.Create;
sl2:=TStringlist.Create;

try
  sl1.loadfromFile('c:\temp\testfîle.lst'); //laden einer Stringliste

  //Variante mit neuer Stringliste
  sl2.Duplicates:= dupignore;
  sl2.Sorted:=true;

  t_start := gettickcount;
  sl2.Assign(Sl1); //Einträge der zweiten Stringliste zuordnen
  t_stop := gettickcount;
  showmessage('Variante1; ' +inttostr(t_stop - t_start)+ ' ms');

  //Variante2 kopiert aus dem Originalposting

  t_start := gettickcount;
  for iLow := 0 to sl1.Count - 2 do
    for iHigh := Pred(sl1.Count) downto Succ(iLow) do
      if sl1[iLow] = sl1[iHigh] then
        sl1.Delete(iHigh);

  t_stop := gettickcount;
  showmessage('Variante2: ' +inttostr(t_stop - t_start)+ ' ms');

finally
 sl1.Free;
 sl2.Free;

end;
  Mit Zitat antworten Zitat