Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi problem mit Stringlist, test auf vorhandensein einer phrase? (https://www.delphipraxis.net/68371-problem-mit-stringlist-test-auf-vorhandensein-einer-phrase.html)

marabu 29. Apr 2006 18:15

Re: problem mit Stringlist, test auf vorhandensein einer phr
 
Zitat:

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

Die Muhkuh 29. Apr 2006 18:34

Re: problem mit Stringlist, test auf vorhandensein einer phr
 
Wo ist RandomStr deklariert? Ich finde das in meiner OH nicht.

marabu 29. Apr 2006 19:02

Re: problem mit Stringlist, test auf vorhandensein einer phr
 
Das nenne ich einen aufmerksamen Leser. Hier hast du:

Delphi-Quellcode:
function RandomStr(size: integer): string;
var
  i: integer;
begin
  SetLength(Result, size);
  for i := 1 to Length(Result) do
    Result[i] := Chr(Ord('A') + Random(26));
end;
marabu

Die Muhkuh 29. Apr 2006 19:05

Re: problem mit Stringlist, test auf vorhandensein einer phr
 
Zitat:

Zitat von marabu
Das nenne ich einen aufmerksamen Leser. Hier hast du:

Nunja, ich wollte das ausprobieren und als ich nirgends RandomStr fand, fragte ich nach :D

Danke ;)

richard_boderich 29. Apr 2006 19:52

Re: problem mit Stringlist, test auf vorhandensein einer phr
 
@marabu

*zitat*
bitte nur eine ja / nein antwort
*zitat ende*

beachte bitte den smiley dahinter gg

danke dir fuer deine ausfuehrungen. dein besipiel werd ich mal genau unter die lupe nehmen.

gruß richard
:D


//edit warum willst du die liste eigentlich unbedingt sortieren?

wobei mir auffaellt das deine RandomStr routine, wesentlich mehr unterschiedliche strings liefert
als gleiche

marabu 29. Apr 2006 20:58

Re: problem mit Stringlist, test auf vorhandensein einer phr
 
Hallo Richard.

Zitat:

Zitat von richard_boderich
beachte bitte den smiley dahinter

Freundschaft (keiner sagt das so schön wie Hans Süper).

Zitat:

Zitat von richard_boderich
warum willst du die liste eigentlich unbedingt sortieren?

In meiner Routine lege ich wert auf Sortierung, damit ich vom binary search profitiere. Wenn du willst kannst du ja mal in deiner Routine die Sortierung auf Kommentar setzen und dann vergleichen.

Zitat:

Zitat von richard_boderich
wobei mir auffaellt das deine RandomStr routine, wesentlich mehr unterschiedliche strings liefert als gleiche

Setze mal den Parameter auf 2.

marabu

richard_boderich 29. Apr 2006 23:07

Re: problem mit Stringlist, test auf vorhandensein einer phr
 
ok marabu,

du hast mich ueberzeugt. hab mir grad deinen code angeschaut und ausprobiert. ich versteh zwar nich genau was binaery suche bedeutet und warum es schneller ist, aber egal. die zahlen luegen ja nich. danke dir nochmal fuer deine hilfe :)

gruß richard


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz