Str2HTML – HTML2Str

Verweis: ErsetzeUmlaut
Uses: StrUtils
Eingabe: Text(String)
Ausgabe: Text(String)
Funktion: Die Funktionen konvertieren zeichen in eine HTML-Kodierung und die andere wieder zurück.

Die Funktion Str2HTML konvertiert einen String mit verschiedenen Sonderzeichen in eine HTML-Kodierung. Dies bvei älteren Browsern nötig. Dies gilt auch für den in Lazarus mitgelieferten HTML-Viewer mit dem man sehr gut eine Offline – Hilfe verwirklichen kann. Für moderne Browser ist dies Funktion eigentlich nicht mehr nötig. Wenn Sie mit der Darstellung Probleme haben, dann haben Sie die UTF8-Angabe im Meta-Tag vergessen. Das sähe dann so aus:

HTML-UTF8 Meta Tag
So sieht der Aufbau für Text mit Sonderzeichen aus.
<meta http-equiv="content-type" content="text/html; charset=utf-8">

Hilft aber wie geschrieben nicht immer. Deswegen also diese Funktion, die, wie wir meinen kurz und schmerzlos ist.

WICHTIG! Bitte benutzen Sie hier ausnahmsweise mal nicht den Kopier – Button. Der Quelltext wird von dem Kopier-Tool falsch interpretiert.

function Str2HTML(const T: string): string;
//Vergessen Sie nicht die Unit StrUtils einzubinden
const
  Zeichen: array[1..15] of string =
    ('ä', 'Ä', 'ö', 'Ö', 'ü', 'Ü', 'ß', '²', '³', '&', '|',
    '§', '°', '€', '  ');
  ZeiHTML: array[1..15] of string =
    ('&auml;', '&Auml;', '&ouml;', '&Ouml;',
    '&uuml;', '&Uuml;', '&szlig;', '&sup2;', '&sup3;', '&amp;',
    '&brvbar;', '&sect;', '&deg;', '&euro;', ' &nbsp;');
begin
  Result := StringsReplace(T, Zeichen, ZeiHTML, [rfReplaceAll]);
end;

Hier sieht man sehr schön, wie leistungsfähig der Befehl “StringsReplace” ist. Der im Netz bedauerlicherweise, zu Unrecht ein Schattendasein führt. Aufgerufen wird die Funktion “Str2HTML” so:

Aufruf

Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie einen TButton und 2 TEdit-Komponenten auf die Form. Binden Sie die Unit StrUtils mit der Uses-Klausel in die Anwendung ein. Doppelklicken sie auf den Button und ersetzen Sie das Ereignis durch folgenden Quelltext:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := Str2HTML(Edit2.Text);
end;

Wenn wir in Edit1 was eintippen und dann auf den Button klicken, dann haben wir in Edit2 den übersetzten Text. Das könnte so aussehen:

HTML-Code Übersetzt.
Die Übersetzung in Aktion.

HTML2Str

WICHTIG! Bitte benutzen Sie hier ausnahmsweise mal nicht den Kopier – Button. Der Quelltext wird von dem Kopier-Tool falsch interpretiert.

function HTML2Str(const T: string): string;
//Vergessen Sie nicht die Unit StrUtils einzubinden
const
  Zeichen: array[1..15] of string =
    ('ä', 'Ä', 'ö', 'Ö', 'ü', 'Ü', 'ß', '²', '³', '&', '|',
    '§', '°', '€', ' ');
  ZeiHTML: array[1..15] of string =
    ('&auml;', '&Auml;', '&ouml;', '&Ouml;',
    '&uuml;', '&Uuml;', '&szlig;', '&sup2;', '&sup3;', '&amp;',
    '&brvbar;', '&sect;', '&deg;', '&euro;', '&nbsp;');
begin
  Result := StringsReplace(T, ZeiHTML, Zeichen, [rfReplaceAll]);
end;

Jetzt noch mal die Funktion in die Gegenrichtung. Dies könnten sie gebrauchen, wenn Sie eine alte HTML – Seite in einen lesbaren Text konvertieren wollen. Aber wir mussten schon lange suchen bis wir noch einen Text gefunden haben. (ca. 20 Jahre zurück.)

Aufruf

Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie einen TButton und 2 TEdit-Komponenten auf die Form. Binden Sie die Unit StrUtils mit der Uses-Klausel in die Anwendung ein. Doppelklicken sie auf den Button und ersetzen Sie das Ereignis durch folgenden Quelltext:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := HTML2Str(Edit2.Text);
end;