Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Performante Lösung für Multi StringReplace (https://www.delphipraxis.net/148896-performante-loesung-fuer-multi-stringreplace.html)

kaju74 10. Mär 2010 13:38


Performante Lösung für Multi StringReplace
 
Hallo.

Da ich ja heute so schön am Code-optimieren bin, welcher Ansatz wäre der performanteste, um
mehrere StringReplaces zu ersetzen? Hierbei sind in einem langen Text, so genannte Makros
oder Platzhalter durch "echten" Inhalt zu ersetzen. Bei 20 und mehr Makros artet das ja in
reinen StringReplaces aus (innerhalb einer Schleife).

Das geht bestimmt auch eleganter und performanter (bzw. weniger Resourcenhungrig), oder?

Danke & Gruß,
- kaju

kaju74 10. Mär 2010 13:39

Re: Performante Lösung für Multi StringReplace
 
Ach ja....nebenbei...arbeite mit Delphi 2010 8-)

Gruß,
- kaju

Luckie 10. Mär 2010 13:43

Re: Performante Lösung für Multi StringReplace
 
Hast du schon mal in unserer Code-Lib gesucht?

Ach ja, man kann auch Beiträge editieren innerhalb von 24 Stunden.

s.h.a.r.k 10. Mär 2010 13:44

Re: Performante Lösung für Multi StringReplace
 
Als allgemeine Alternative fallen mit reguläre Ausdrücke ein, aber wie sich die im Vergleich zu StringReplace schlagen, weiß ich nicht.

In PHP geht sowas sehr elegant. Man definiert ein Array mit Patterns und eines mit "Replacern" und wirft das dann ein die str_replace-Methode. Ich bezweifle aber, dass Delphi das kann.

Matze 10. Mär 2010 13:50

Re: Performante Lösung für Multi StringReplace
 
Zitat:

Zitat von s.h.a.r.k
Als allgemeine Alternative fallen mit reguläre Ausdrücke ein, aber wie sich die im Vergleich zu StringReplace schlagen, weiß ich nicht.

Reguläre Ausdrücke sind in der Regel sehr langsam, da diese erst recht aufwändig geparst werden müssen. Sie sind normalerweise alles andere als eine "performante Lösung".

kaju74 10. Mär 2010 13:57

Re: Performante Lösung für Multi StringReplace
 
Hallo....

...und Danke für die schnellen Antworten.

Gesucht ja, gefunden jein: Das Problem? Delphi2010 und evtl. neue Sprachfeatures.

Das diese Frage schon gestellt wurde ist klar, aber Delphi2010 kommt mit einem Satz neuer Units
und Sprachfeatures, die eine evtl. früher vorgstellte Lösung obsolet macht...mann müsste nur
wissen, ob's eine entsprechende Alternativ gibt oder ob jemand da man was "geschraubt" hat.

Lieben Gruß,
- kaju

xaromz 10. Mär 2010 14:57

Re: Performante Lösung für Multi StringReplace
 
Hallo,

http://www.delphipraxis.net/internal...ct.php?t=81340

Wenn Du Delphi 2010 verwendest, musst Du allerdings noch die ganzen Ansi-Prefixe löschen.

Gruß
xaromz

kaju74 10. Mär 2010 15:00

Re: Performante Lösung für Multi StringReplace
 
Hallo.

Diesen Beitrag hatte ich zuvor auch gefunden..ein reines entfernen des Ansi-Prefixes reicht nicht, da
auch an einigen Stellen dann falscher Speicher allokiert wird - das gucke ich mir dann aber nochmal
genauer an - Danke 8-)

Lieben Gruß,
- kaju


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 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