Referenz - ESCAPE
Syntax: OPTION ESCAPE
Typ: Schlüsselwort
Kategorie: Programmoptionen
OPTION ESCAPE aktiviert die Verwendung von Escape-Characters in Strings. Diese Option kann nur bis FreeBASIC v0.16 eingesetzt werden, oder in entsprechend höheren Versionen, die mit der Kommandozeilenoption -lang deprecated compiliert wurden! Für den Einsatz von ESCAPE-Sequenzen in Versionen ab v0.17 mit der Option -lang fb siehe unter 'Ab FreeBASIC v0.17'.
Durch diese Option werden in FreeBASIC Backslashes ( "\", CHR(92) ) als Escape-Characters verwendet. Der Ausdruck hinter dem Escape-Character wird nicht 1:1 ausgegeben, sondern zuerst interpretiert. Folgt dem Character eine Zahl, so funktioniert der Character wie ein CHR; anstelle der Zahl wird das zugehörige ASCII-Zeichen ausgegeben. Die Zahl kann in jedem beliebigen Zählsystem angegeben werden, wenn das Präfix &? verwendet wird (z.B. &h für hexadezimal).
Außerdem werden folgende Strings besonders behandelt::
- \r wie ein CHR(13) (carriage-return)
- \n und \l wie ein CHR(10) (line-feed). \r\n ergibt also ein CRLF, die EDV-Version eines Zeilenumbruchs unter Windows.
- \a wie ein CHR(7) (Bell)
- \b wie ein CHR(8) (Backspace)
- \t wie ein CHR(9) (Tab)
- \v wie ein CHR(11) (vtab)
- \f wie ein CHR(12) (formfeed)
- \" wie ein CHR(34) (Doppeltes Anführungszeichen ")
- \' wie ein CHR(39) (Einfaches Anführungszeichen ')
- Alle anderen Zeichen hinter dem Escape-Char werden so interpretiert, wie sie im Ausdruck stehen. \\ wird also zu \. Beachten Sie dies, wenn Sie OPTION ESCAPE in Zusammenhang mit Pfadangaben verwenden!
Es ist möglich, einem String ein Dollarzeichen $ voranzustellen. In diesem Fall wird für diesen String die Interpretation der Escape-Zeichen deaktiviert. Dies ist natürlich nicht nötig, wenn OPTION ESCAPE nicht verwendet wird.
Beispiel:
#lang "deprecated"
OPTION ESCAPE
#DEFINE CRLF "\r\n"
DIM AS STRING message
message = "\45 Das ist die \"erste\" Zeile.\r\nDas "
message &= "ist die \"zweite\" Zeile. \45"
PRINT message
PRINT CRLF & "^-- CRLF --V" & CRLF;
PRINT "Der Pfad lautet \34" $"C:\FREEBASIC\33a" "\34"
SLEEP
Ausgabe:
- Das ist die "erste" Zeile.
Das ist die "zweite" Zeile. -
^-- CRLF --V
Der Pfad lautet "C:\FREEBASIC\33a
Ab FreeBASIC v0.17
Da mit FreeBASIC v0.17 die Verwendung von OPTION-Standards nicht mehr zulässig ist, müssen Strings, die Escape-Sequenzen enthalten, jetzt explizit markiert werden. Dies geschieht dadurch, dass ihnen ein Ausrufezeichen vorangestellt wird:
!"String, der Escape-Sequenzen enthält"
Das oben gezeigte Beispiel muss also folgendermaßen lauten, wenn in der Dialektform -lang fb (Standard) compiliert wird:
#DEFINE CRLF !"\r\n"
DIM AS STRING message
message = !"\45 this is the \"first\" line\r\nthis "
message &= !"is the \"second\" line \45"
PRINT message
PRINT CRLF & !"^-- CRLF --V" & CRLF;
PRINT !"The Path is \34" "C:\FREEBASIC\33a" !"\34"
SLEEP
Die Markierung von Strings, die nicht geparsed werden sollen, mit einem Dollarzeichen $ ist also nicht mehr nötig; aus Kompatibilitätsgründen ist sie aber immer noch erlaubt. Die letzte Zeile dieses Beispiels dürfte also ebenso lauten:
PRINT !"The Path is \34" $"C:\FREEBASIC\33a" !"\34"
Unterschiede zu QB: neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC:
- Seit FreeBASIC v0.17 muss mit der Kommandozeilenoption -lang deprecated compiliert werden, um OPTION ESCAPE einsetzen zu können. Soll stattdessen nach '-lang fb' übersetzt werden, so werden Strings, die Escape-Sequenzen enthalten, mit einem Ausrufezeichen markiert: !"String, der Escape-Sequenzen enthält".
- Seit FreeBASIC v0.16 ist es möglich, Strings ein Dollarzeichen $ voranzustellen, um die Interpretation der Escape-Chars zu unterdrücken.
- Seit FreeBASIC v0.14 werden Escape-Chars in INCLUDE- und INCLIB-Anweisungen nicht mehr interpretiert.
Siehe auch:
OPTION, Ausrufezeichen, Dollarzeichen, __FB_OPTION_ESCAPE__, Verschiedenes
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|