![]() |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Zitat:
|
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
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:
...:cat:...
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 :shock: |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
wie wärs mit stringofchar
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin caption := stringofchar('a', 100); end; |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Zitat:
...:cat:... |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Zitat:
Hast gewonnen! :roll: P.S. Bei mir ist StringOfChar etwas langsamer... P.P.S Endlich Club Member |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
::: froi ::: :party: :cheers: :bouncing4:
aber ich glaub die frage hatten wir schon ein paarmal :wink: ![]() ps: bei mir: dupe 330 - 16 fillchar |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Zitat:
...:cat:... |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Zitat:
|
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
die katze herself ;)
empfieht, die StringOfChar-Variante zu nehmen, weil sie "von sich aus" bei Delphi dabei ist. Auch falls sie (ist sie aber nicht ;) ) langsamer sein sollte. ###### Ich vermute, dass dieses vorteilhaft ist a) bei der Optimierung des Codes durch den Compiler (?) b) der Zukunftssicherheit des Codes (die DIYS-Variante könnte irgendwann Fehler hervorrufen, StringOfChar wird es wahrscheinlich noch ne ganze Weile geben) |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Zitat:
Ich denke mal, daß es bei der Überprüfung welche schneller ist, eher zu Messfehlern gekommen ist (ich denke mal +/-10 Millisekunden ;) ), da es immer noch andere Dinge zu tun gibt auf dem PC. Ein weiterer Grund ist, das StringOfChar eine einzige Zeile benötigt und einfach sauberer ist. Das ist dann von Vorteil für den Entwickler ;) ...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz