Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi FastStrings eingestellt? (https://www.delphipraxis.net/132318-faststrings-eingestellt.html)

PeterPanino 10. Apr 2009 03:34

Re: FastStrings eingestellt?
 
Vielen Dank für die vielen Hinweise! Ich werde das alles mal ausprobieren und dann hier Bescheid geben, wer das Rennen gemacht hat ... ;-)

alzaimar 10. Apr 2009 07:55

Re: FastStrings eingestellt?
 
HTML-Äquivalente bestehen aber aus mehr als einem Zeichen ('&' etc. wenn ich mich nicht irre).

Trotzdem wird eine Lookup-Tabelle für die zu ersetzenden Zeichen etwas bringen. Ich habe selbst mit einem simplen Case-Konstrukt eine ausreichende Performance erzielt.

jaenicke 10. Apr 2009 07:57

Re: FastStrings eingestellt?
 
Es geht um das Ersetzen eines Umlautes in die HTML-Repräsentation, deshalb kann man das sehr gut zeichenweise machen, praktisch so wie ich es beim Adventsgewinnspiel gemacht hatte.

Für den Ersetzungsstring bietet sich ein konstantes Array an, das die HTML-Ersetzungen entsprechend des Ascii-Codes enthält. Dann ist das ganze sehr einfach und schnell.

alzaimar 10. Apr 2009 08:12

Re: FastStrings eingestellt?
 
Zitat:

Zitat von jaenicke
Es geht um das Ersetzen eines Umlautes in die HTML-Repräsentation

Gib mal ein Beispiel. Ich kann mir das nicht vorstellen, was wie ersetzt werden könnte (War spät gestern).

jaenicke 10. Apr 2009 08:19

Re: FastStrings eingestellt?
 
Delphi-Quellcode:
const
  HtmlCodes: array[0..3] of String = ('ä', 'å', 'æ', 'ç');
// Das ä hat den Zeichencode $E4, also ist das die unterste Grenze beim Ersetzen

if (DerString[i] >= Chr($E4)) and (HtmlCodes[Ord(DerString) - $E4] <> '') then
  // Zeichen i durch HtmlCodes[Ord(DerString) - $E4] ersetzen
Das kann man natürlich effizienter umsetzen, z.B. indem alle Zeichen in das Array gelegt werden und daher weniger Abfragen nötig sind.

Eine schnelle Möglichkeit einer ähnlichen Vorgehensweise habe ich ja verlinkt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr.
Seite 2 von 2     12   

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