AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StringReplace und doppelte Leerzeichen

Ein Thema von Pichel · begonnen am 10. Apr 2006 · letzter Beitrag vom 12. Apr 2006
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Benutzerbild von Pichel
Pichel

Registriert seit: 25. Feb 2005
Ort: Kassel
65 Beiträge
 
Delphi 7 Professional
 
#31

Re: StringReplace und doppelte Leerzeichen

  Alt 11. Apr 2006, 14:13
Ey... Leute....

Seid Ihr verrückt (ich meine das absolut nett)

Es ist ja jetzt fast ein Wettstreit um die schnellste Funktion entstanden. Nein nicht nur fast, es ist.

Warum macht man daraus nicht gleich einen kompletten StringReplace Ersatz, denn das einzige was man zu StringReplace in den Foren findet ist, daß es "*rschlahm" ist

Ich würde mich gerne auch noch weiter produktiv an diesem Thema beteiligen, aber hier seid Ihr bereits so weit das ich da besser nur noch interessiert lese und lerne.
Grüße aus Kassel.

Konfuzius sprach: Etwas lernen und sich immer wieder darin üben - schafft das nicht auch Befriedigung?
  Mit Zitat antworten Zitat
DerDan

Registriert seit: 15. Nov 2004
Ort: Donaueschingen
251 Beiträge
 
Delphi XE3 Professional
 
#32

Re: StringReplace und doppelte Leerzeichen

  Alt 11. Apr 2006, 14:19
Code:
Zeit1(   36,34 ms)/Zeit2    81,83% =  -18,17% (SirThornberry)
Zeit2(   44,41 ms)/Zeit2   100,00%             (sakura)
Zeit3(   34,89 ms)/Zeit2    78,57% =  -21,43% (jbg)
Zeit4(   29,93 ms)/Zeit2    67,41% =  -32,59% (DerDan)
Zeit5(   34,20 ms)/Zeit2    77,01% =  -22,99% (Elvis)
Ich habs mit der Testsuite von sakure aus einem der 1. Beiträge getestet (#7)

Tatsächlich sollte man mal richtige Testdaten Haben ...


mfg

DerDan
nichts ist so schön wie man es sich vorstellt
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#33

Re: StringReplace und doppelte Leerzeichen

  Alt 11. Apr 2006, 14:35
Zitat von Pichel:
Warum macht man daraus nicht gleich einen kompletten StringReplace Ersatz, denn das einzige was man zu StringReplace in den Foren findet ist, daß es "*rschlahm" ist
Warum das Rad neu erfinden:

AnsiStringReplace vom FastCode Projekt sollte reichen. Schneller wird es wohl nicht gehen.
  Mit Zitat antworten Zitat
DerDan

Registriert seit: 15. Nov 2004
Ort: Donaueschingen
251 Beiträge
 
Delphi XE3 Professional
 
#34

Re: StringReplace und doppelte Leerzeichen

  Alt 11. Apr 2006, 14:40
Code:
Zeit1(   96,32 ms)/Zeit2    94,11% =   -5,89% (SirThornberry)
Zeit2(  102,35 ms)/Zeit2   100,00%             (sakura)
Zeit3(   90,74 ms)/Zeit2    88,66% =  -11,34% (jbg)
Zeit4(   72,29 ms)/Zeit2    70,64% =  -29,36% (DerDan)
Zeit5(   78,48 ms)/Zeit2    76,68% =  -23,32% (Elvis)

Testergebins mit einem Pascal Quelltext,

wie man sieht alles stark von den Eingangsdaten abhängig


mfg

derDan

Wer misst misst mist:


ich habe meinen Quelltext nochmals überprüft und festgestellt, dass
ich Zeit3 und Zeit 4 vertauscht habe:

korrekt ist das:

Code:
Zeit1(  378,25 ms)/Zeit2    88,62% =  -11,38% (SirThornberry)
Zeit2(  426,82 ms)/Zeit2   100,00%             (sakura)
Zeit3(  371,47 ms)/Zeit2    87,03% =  -12,97% (DerDan)
Zeit4(  317,78 ms)/Zeit2    74,45% =  -25,55% (jbg)
Zeit5(  345,66 ms)/Zeit2    80,98% =  -19,02% (Elvis)

Sorry vielmals

und Danke an Elvis der mir eine PN geschickt hat und ich daraufhin nochmals getestet habe
und meinen Fehler gefunden habe.

DerDan
nichts ist so schön wie man es sich vorstellt
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#35

Re: StringReplace und doppelte Leerzeichen

  Alt 12. Apr 2006, 09:08
Etwas verspätet, aber hier eine kleine Vergleichsgrafik. Erstellt wurden 5 Randomstrings (10 Mio Zeichen) mit mehr oder weniger häufigen doppelten Leerzeichen. Das Laufzeitverhalten ist stark Abhängig von der Häufigkeit. Lustigerweise kommt man dann zu anderen Ergebnissen, zumindest auf einem AMD.
http://www.edwebservice.de/uploads/ab0cabdd5f.bmp
Angehängte Dateien
Dateityp: zip dlbblanks_644.zip (285,5 KB, 24x aufgerufen)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Fuchtel

Registriert seit: 9. Nov 2005
Ort: Bamberg
53 Beiträge
 
Delphi 2005 Personal
 
#36

Re: StringReplace und doppelte Leerzeichen

  Alt 12. Apr 2006, 09:28
Hallo alzamir,

ist ganz hübsch, erinnert mich irgendwie an eine Gaussche Normalverteilung (mit 0 Punkt bei 50%).

Wenn Du jetzt noch die einzelnen Algorithmen der RemoveDblSpaces Functionen zum rauskopieren mit einbauen wuerdest, dann könnte jeder nach seiner CPU und abgeschätzten Prozentanteil, die passende Function gleich übernehmen.

Oder veröffentliche doch gleich den Quelltext.

Gruß Fuchtel
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#37

Re: StringReplace und doppelte Leerzeichen

  Alt 12. Apr 2006, 09:44
Wieviel schulde ich dir für die Statistik?
btw: Wie ich bereits angedeutet habe, packt mal irgendwo ein #0 in den String und probiert es noch mal.
Meins ist zwar eigentlich eine Kopie von alzaimars Code, bei mir muss aber ein Integer anstatt einem Byte verglichen werden[1], dafür stopt die Funktion nicht beim ersten #0.
Es ist aber möglich, dass meine mit weniger Operationen auskommt wenn die Anzahl der aufeinander folgenden Doubletten steigt[2].

Fazit: Mal wieder eine nette Exkursion zurück in unmanaged, pointerverseuchte Gefilde.

[1] Adresse hinter dem letzten Zeichen vs #0
[2] Solange muss sie ja nicht gegen die aktuelle Position prüfen.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#38

Re: StringReplace und doppelte Leerzeichen

  Alt 12. Apr 2006, 10:01
Zitat von Fuchtel:
Oder veröffentliche doch gleich den Quelltext
Ja, könnte ich machen, aber die Routinen stehen hier doch sowieso alle...
@Elvis: Schulden werden per beglichen.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Fuchtel

Registriert seit: 9. Nov 2005
Ort: Bamberg
53 Beiträge
 
Delphi 2005 Personal
 
#39

Re: StringReplace und doppelte Leerzeichen

  Alt 12. Apr 2006, 10:37
Hallo alzaimar,

nein, ich meinte, um die Option in dein Vergleichschart einzubauen, anhand des Ergebnisses
die passende Funktion von dort gleich in die Zwischenablage zu Übernehmen.

Gruß Fuchtel
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#40

Re: StringReplace und doppelte Leerzeichen

  Alt 12. Apr 2006, 10:44
Zitat von Fuchtel:
Hallo alzaimar,

nein, ich meinte, um die Option in dein Vergleichschart einzubauen, anhand des Ergebnisses
die passende Funktion von dort gleich in die Zwischenablage zu Übernehmen.
Wozu soll das gut sein?
Du würdest eigentlich nur 2 Funktionen brauchen. Eine, die besser mit Mini-Strings umgehen kann und eine für den Rest. Die für den Rest wird wohl immer noch schnell genug für die meisten Anwendungen von Mini-Strings sein.

Ich denke nicht, dass alzaimar so offensichtlich Copy&Waste-"Programmierer" unterstützen würde.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


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 06:06 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