Abgeleitet von TComponent
Unit: Entity
Mit einer TCharToEntityTranslator-Komponente kann man einzelne Zeichen eines Textes durch eine Zeichenfolge ersetzen.
Eigenschaften
TCharToEntityTranslator.DictionaryFile
property DictionaryFile: TFileName
Die Eigenschaft DictionaryFile gibt den Namen der Datei an, die die Übersetzungstabelle enthält, auf deren Grundlage einzelne Zeichen in Zeichenfolgen übersetzt werden. Es muß sich dabei um eine Text-Datei handeln, deren einzelne Zeilen die Struktur
<EinzelnesZeichen>=<Zeichenfolge>
besitzen.
Hinweis: Dem Zip-Archiv liegt eine Datei Latin1ToHTML.ini bei, mit der man einen Text, der mit einem Text-Editor und einem Latin-1-Zeichensatz erstellt wurde, in einen HTML-Text umwandeln kann. Damit wird dann zum Beispiel ein 'ß' umgewandelt in 'ß'.
TCharToEntityTranslator.HasEntries (readonly)
property HasEntries: Boolean
Gibt 'True' zrück, falls if die Übersetzungstabelle Einträge enthält; andernfalls wird 'False' zrückgeliefert.
Methoden
TCharToEntityTranslator.Create
constructor Create(AOwner: TComponent); override;
Die Methode Create erzeugt und initialisiert eine Instanz von TCharToEntityTranslator. Mit Create können Sie zur Laufzeit einen CharToEntityTranslator erzeugen. Für CharToEntityTranslatoren, die zur Entwurfszeit in einem Formular plaziert werden, wird Create automatisch aufgerufen.
TCharToEntityTranslator.Translate
function Translate(const source: string): string; virtual;
Die Funktion Translate ersetzt einzelne Zeichen von 'source' gemäß der in der Eigenschaft 'DictionaryFile' angegebenen Übersetzungstabelle und gibt das Ergebnis in einem String zurück. Der Eigenschaft 'DictionaryFile' muß zuvor eine gültige Übersetzungstabelle zugewiesen worden sein!
TCharToEntityTranslator.ReplaceWhiteSpace
function ReplaceWhiteSpace(const Source: string; const ReplaceChar: Char): string; virtual;
Die Funktion ReplaceWhiteSpace ersetzt jedes Leerraumzeichen (SPACE, TAB, LF, CR) in String 'Source' durch das in 'ReplaceChar' angegebene Zeichen und gibt das Ergebnis als String zurück.
Hinweis: Mehrere direkt hintereinander stehende Leerraumzeichen werden durch ebensoviele direkt hintereinander stehende 'ReplaceChar'-Zeichen ersetzt.
TCharToEntityTranslator.ReplaceChar
function ReplaceChar(const Source: string; const FindChar, ReplaceChar: Char): string; virtual;
Die Funktion ReplaceChar ersetzt jedes 'FindChar'-Zeichen im String 'Source' durch das in 'ReplaceChar' angegebene Zeichen und gibt das Ergebnis als String zurück.
Hinweis: Diese Funktion ist im Zusammenhang mit dem PageProducer sehr nützlich, wenn man als Parameter-Wert einen Text übergeben möchte. Enthält der Text nämlich Leerzeichen, führt dies zu Fehlern bei der Verarbeitung durch den PageProducer. Um solche Fehler zu verhindern, ersetzt man vorher alle Leerzeichen eines Textes mittels der Funktion ReplaceWhiteSpace durch ein Zeichen, das im Text garantiert nicht vorkommt. Beispiel:
with CharToEntityTranslator1 do
NeuerText:= ReplaceWhiteSpace(AlterText,Char(1));
Im OnHTMLTag-Ereignis des PageProducers kann man dies dann wieder rückgängig machen, indem man die entsprechenden Zeichen mit der Funktion ReplaceChar in SPACE verwandelt:
with CharToEntityTranslator1 do
AlterText:= ReplaceChar(TagParams.Values['Value'],Char(1),' ');
Achtung: TABs, LFs und CRs des urspünglichen Textes sind nun zu SPACEs geworden! Für HTML ist das aber in der Regel sowieso egal.