AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von gmarts · begonnen am 25. Mai 2004 · letzter Beitrag vom 15. Aug 2004
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#11

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

  Alt 25. Mai 2004, 13:09
Zitat von Steve:
edit: Ups, zu langsam
[OT]Das i macht den Unterschied! 8)[/OT]
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
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
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#13

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

  Alt 25. Mai 2004, 13:11
wie wärs mit stringofchar

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
caption := stringofchar('a', 100);
end;
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

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

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

  Alt 25. Mai 2004, 13:14
Zitat von nailor:
wie wärs mit stringofchar
Ich habe wieder etwas gelernt Im Ernst, StringOfChar und meine Variante sind ca. gleich schnell, StringOfChar ist allerdings durch den Compiler besser integriert und somit wohl einen klitzekleinen Tick schneller

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#15

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

  Alt 25. Mai 2004, 13:16
Zitat von sakura:
P.S.: DupeString ca. 1 Sekunde; FillChar ca. 20 Millisekunden
Bei mir 1 sek und 60 ms

Hast gewonnen!

P.S. Bei mir ist StringOfChar etwas langsamer...

P.P.S Endlich Club Member
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#16

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

  Alt 25. Mai 2004, 13:16
::: froi :::

aber ich glaub die frage hatten wir schon ein paarmal

Hier im Forum suchenstringofchar



ps: bei mir:
dupe 330 - 16 fillchar
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

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

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

  Alt 25. Mai 2004, 13:22
Zitat von Stevie:
P.S. Bei mir ist StringOfChar etwas langsamer...
Ich würde es Dir trotzdem empfehlen, da es "nativ" zu Delphi gehört

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#18

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

  Alt 25. Mai 2004, 13:34
Zitat von sakura:
Zitat von Stevie:
P.S. Bei mir ist StringOfChar etwas langsamer...
Ich würde es Dir trotzdem empfehlen, da es "nativ" zu Delphi gehört

......
Häh?? Versteh ich nicht...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#19

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

  Alt 25. Mai 2004, 13:41
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)
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

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

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

  Alt 25. Mai 2004, 13:47
Zitat von nailor:
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.
Nicht unbedingt, ich habe mir schon einige lahme Delphi-Routinen umgeschrieben.

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

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 Uhr.
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