Einleitendes Zeichen ist immer der Backslash ,,\``. Direkt
daran anschliessend folgen bestimmte Zeichen oder Kombinationen,
die den Wert des Zeichens bestimmen (Tabelle 5.3). Der
Backslash selbst wird als ,,\\`` angegeben.
Alle in der Tabelle nicht vermerkten Zeichen nach ,,\``
ergeben eine Fehlermeldung.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Zu den Sonderzeichen noch einige Anmerkungen und Tips:
\n``, ,,\x0a``,
,,\x0A`` oder als
,,\012`` angeben.
\o`` liefert ASCII.nul. Dieses Zeichen dient aber auch
gleichzeitig als Ende-Kennung eines Strings. Der Compiler selbst
kümmert sich beim Einlesen von Konstanten nicht darum, da er die Länge
der Konstanten intern vermerkt. Alle Standard- und Bibliotheks-Prozeduren
hingegen kennen die Länge nicht und sehen dieses Zeichen als Ende an.
Die Anweisung
\`` muss bei (standardmässig) eingeschalteter
Option nun beispielsweise in einer CASE-Anweisung als
,,\\`` geschrieben werden, sonst wird das abschliessende Hochkomma
als Sonderzeichen behandelt und die Zeichenkette endet erst am Zeilenende
(mit einer Fehlermeldung).
CASE char OF
"\o": WriteInt(0,3); |
"\\": WriteInt(92,3); |
"x" : WriteInt(120,3);
"\x03DF0" "\002AB"
VAR
ldb:POINTER TO RECORD
len:LONGINT;
name:ARRAY[0..1000] OF CHAR
END;
ldb:=ADR("\o\o\o\011_LinkerDB\o\o\o");
WriteString("\"'Hallo', sagte er\", sagte sie.");
ergibt die Ausgabe
"'Hallo', sagte er", sagte sie.
"\o\xa0\x11Guru Medi\o\001\o\xAc\x1Ctation\o\o"
--> Guru Medi
tation