AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Performante Lösung für Multi StringReplace

Performante Lösung für Multi StringReplace

Offene Frage von "kaju74"
Ein Thema von kaju74 · begonnen am 10. Mär 2010 · letzter Beitrag vom 10. Mär 2010
Antwort Antwort
kaju74

Registriert seit: 22. Okt 2003
185 Beiträge
 
#1

Performante Lösung für Multi StringReplace

  Alt 10. Mär 2010, 13:38
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
  Mit Zitat antworten Zitat
kaju74

Registriert seit: 22. Okt 2003
185 Beiträge
 
#2

Re: Performante Lösung für Multi StringReplace

  Alt 10. Mär 2010, 13:39
Ach ja....nebenbei...arbeite mit Delphi 2010

Gruß,
- kaju
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Performante Lösung für Multi StringReplace

  Alt 10. Mär 2010, 13:43
Hast du schon mal in unserer Code-Lib gesucht?

Ach ja, man kann auch Beiträge editieren innerhalb von 24 Stunden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

Re: Performante Lösung für Multi StringReplace

  Alt 10. Mär 2010, 13:44
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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Performante Lösung für Multi StringReplace

  Alt 10. Mär 2010, 13:50
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".
  Mit Zitat antworten Zitat
kaju74

Registriert seit: 22. Okt 2003
185 Beiträge
 
#6

Re: Performante Lösung für Multi StringReplace

  Alt 10. Mär 2010, 13:57
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
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Performante Lösung für Multi StringReplace

  Alt 10. Mär 2010, 14:57
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
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
kaju74

Registriert seit: 22. Okt 2003
185 Beiträge
 
#8

Re: Performante Lösung für Multi StringReplace

  Alt 10. Mär 2010, 15:00
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

Lieben Gruß,
- kaju
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:27 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