Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'

  Alt 25. Mai 2004, 13:11
DupeString nutzt intern auch eine Schleife. Ich würde Dir empfehlen auf SetLenght und FillChar auszuweichen.

Mache mal eine Leere App mit einem Button und zwei Labels und vergleiche die Ergebnisse. Hier der Button-OnClick Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Start, Stop, Freq: Int64;
  R1, R2: String;
begin
  QueryPerformanceCounter(Start);
  R1 := DupeString('a', 10000000);
  QueryPerformanceCounter(Stop);
  QueryPerformanceFrequency(Freq);
  Label1.Caption := Format('%n ms', [(Stop - Start) / Freq * 1000]);

  QueryPerformanceCounter(Start);
  SetLength(R2, 10000000);
  FillChar(R2[1], 10000000, 'a');
  QueryPerformanceCounter(Stop);
  QueryPerformanceFrequency(Freq);
  Label2.Caption := Format('%n ms', [(Stop - Start) / Freq * 1000]);
end;
......

P.S.: DupeString ca. 1 Sekunde; FillChar ca. 20 Millisekunden
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat