AGB  ·  Datenschutz  ·  Impressum  







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

FastStrings eingestellt?

Ein Thema von PeterPanino · begonnen am 10. Apr 2009 · letzter Beitrag vom 10. Apr 2009
Antwort Antwort
Seite 1 von 2  1 2      
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#1

FastStrings eingestellt?

  Alt 10. Apr 2009, 00:00
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 http://www.droopyeyes.com/default.as...howProductID=4 nur mehr eine Optiker-Website zu erreichen.

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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: FastStrings eingestellt?

  Alt 10. Apr 2009, 00:12
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?
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: FastStrings eingestellt?

  Alt 10. Apr 2009, 00:14
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#4

Re: FastStrings eingestellt?

  Alt 10. Apr 2009, 00:14
Peter Morris, Author des FastStrings Projekts, hat dieses eingestellt.
Hintergruende sind in diesem Blog zu lesen.
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: FastStrings eingestellt?

  Alt 10. Apr 2009, 00:57
Zitat von jaenicke:
Du könntest zeichenweise durchgehen und schauen ob es Übereinstimmungen gibt, wenn du nach mehreren Strings suchst
Gibt es Studien darüber, ob dieser Algorithmus effizienter ist?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: FastStrings eingestellt?

  Alt 10. Apr 2009, 01:04
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: FastStrings eingestellt?

  Alt 10. Apr 2009, 01:26
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?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: FastStrings eingestellt?

  Alt 10. Apr 2009, 01:59
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:
http://www.delphi-forum.de/viewtopic...=535934#535934
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

Re: FastStrings eingestellt?

  Alt 10. Apr 2009, 02:20
Also einen optimierten Code, um mehrere Patterns auf einmal zu ersetzen habe ich hier auf jeden Fall schon gesehen.
Über Google habe ich den hier gefunden, ich hoffe, das ist der richtige.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: FastStrings eingestellt?

  Alt 10. Apr 2009, 02:23
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:14 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