Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: problem mit Stringlist, test auf vorhandensein einer phr

  Alt 29. Apr 2006, 18:15
Zitat von richard_boderich:
bitte nur eine ja / nein antwort
Was verlangst du da. Sieh selbst. Ich habe auch bei deinem Code eine sortierte Liste vorausgesetzt - ansonsten läufst du außer Konkurrenz. Mit sortierter Liste bist du nur noch zwischen 10 und 40 Prozent langsamer.

Delphi-Quellcode:
const
  IMAX = 10000;

procedure TDemoForm.MarabuClick(Sender: TObject);
var
  i: Integer;
  s: String;
  tc: Cardinal;
  sl: TStringList;
begin
  sl := TSTringList.Create;
  sl.Sorted := true;
  sl.Duplicates := dupIgnore;

  tc := GetTickCount;
  for i := 1 to IMAX do
  begin
    s := RandomStr(3);
    sl.Add(s);
  end;
  tc := GetTickCount - tc;
  ShowMessage(Format('%d dupes, %d ticks', [IMAX - sl.Count, tc]));

  sl.Free;
end;

procedure TDemoForm.RichardClick(Sender: TObject);
var
  i: Integer;
  s: String;
  tc: Cardinal;
  sl: TStringList;
begin
  sl := TSTringList.Create;
  sl.Sorted := true;

  tc := GetTickCount;
  for i := 1 to IMAX do
  begin
    s := RandomStr(3);
    if sl.IndexOf(s) = -1 then
      sl.Add(s);
  end;
  tc := GetTickCount - tc;
  ShowMessage(Format('%d dupes, %d ticks', [IMAX - sl.Count, tc]));

  sl.Free;
end;
marabu
  Mit Zitat antworten Zitat