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