![]() |
FastStrings eingestellt?
Hallo, weiß jemand, ob es eine neuere Version von FastStrings gibt?. Die letzte Version scheint nämlich die Version 3.2 aus dem Jahr 2003 zu sein. Außerdem ist unter der angebenen URL
![]() Ich habe nämlich eine Routine, in der StringReplace häufig aufgerufen wird, und muss deshalb die Ausführzeit optimieren. Kann hier jemand dazu einen Rat geben? |
Re: FastStrings eingestellt?
viele der Funktionen des Projektes sind auch schon direkt in Delphi integriert.
in "neueren" (ich weiß nicht genau seitwann) Delphiversionen sind viele "langsame" Funktionen direkt durch welche von da ersetzt wurden. eventuell ist das auch ein Grund, daß man es als Einzelprojekt aufgegeben hat? :gruebel: |
Re: FastStrings eingestellt?
Vielleicht könntest du das auch anders umsetzen als mit StringReplace, denn das ist zwar einfach, aber nicht besonders schnell. Du könntest zeichenweise durchgehen und schauen ob es Übereinstimmungen gibt, wenn du nach mehreren Strings suchst.
Und vielleicht gibt es auch noch eine bessere noch speziellere Lösung, je nachdem was du genau vor hast. |
Re: FastStrings eingestellt?
Peter Morris, Author des FastStrings Projekts, hat dieses eingestellt.
Hintergruende sind in ![]() |
Re: FastStrings eingestellt?
Zitat:
|
Re: FastStrings eingestellt?
Naja, eigentlich sollte es vom Algorithmus her schneller sein, aber es kommt drauf an, ob man die Umsetzung schneller hinbekommt als der bestehende Code für Such- und Ersetzoperationen, denn das erfordert ja auch Speicherzugriffe. :gruebel:
|
Re: FastStrings eingestellt?
Naja, was ich machen möchte, ist eine StringListe nach HTML zu übersetzen, d.h. z.B. die deutschen Umlaute sollen in die entsprechenden HTML-Äquivalente übersetzt werden. Ober gibt es dafür schon fertige Routinen?
|
Re: FastStrings eingestellt?
Das nicht, aber da du jeweils einen Buchstaben durch mehrere andere ersetzen willst, ist das zeichenweise durchgehen mit absoluter Sicherheit sehr sehr viel schneller. Die Ersetzungen kannst du ja in einem Array speichern und dann bei dem entsprechenden Zeichen nur darauf zugreifen.
Sinnvoll dürfte es sein einen neuen größeren String zu erstellen und die Zeichen zeichenweise hineinzusetzen, dann wird nicht jedesmal bei einer Ersetzung der komplette String kopiert. Eine Idee könnte dir dieser Code geben, der ebenfalls eine Ersetzung durchführt: ![]() Mit dem Code habe ich viele Millionen Buchstaben pro Sekunde abarbeiten können (ich glaube 150 Millionen oder so). Wie sieht dein Code denn aus? Sind da visuelle Komponenten involviert? Das könnte die größten Geschwindigkeitsprobleme verursachen, wenn man da nicht aufpasst. |
Re: FastStrings eingestellt?
Also einen optimierten Code, um mehrere Patterns auf einmal zu ersetzen habe ich hier auf jeden Fall schon gesehen.
Über Google habe ich ![]() |
Re: FastStrings eingestellt?
Ja, den meinte ich, aber in diesem Fall geht es noch sehr viel schneller, da es um einzelne zu ersetzende Zeichen geht, die man vorher in einem Array optimal speichern kann, so dass nur wenige einfache Operationen jeweils notwendig sind.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:44 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 by Thomas Breitkreuz