Referenz - Ausrufezeichen
Das Ausrufezeichen ! aktiviert die Verwendung von Escape-Zeichen in Strings. Dadurch werden in FreeBASIC Backslashes ("\", ASCII-Code 92) als Escape-Zeichen verwendet. Der Ausdruck hinter dem Escape-Zeichen wird nicht 1:1 ausgegeben, sondern zuerst interpretiert. Folgt dem Zeichen eine Zahl, so funktioniert das Zeichen 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 von FreeBASIC gesondert behandelt:
- \r wie ein CHR(13) (carriage-return)
- \n und \l wie ein CHR(10) (line-feed). \r\n ergibt also ein CRLF, unter Windows die EDV-Version eines Zeilenumbruchs.
- \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-Zeichen werden so interpretiert, wie sie im Ausdruck stehen. \\ wird also zu \.
Beispiel:
#IFDEF __FB_PCOS__
#DEFINE NEWLINE !"\r\n" ' Windows-Zeilenumbruch
#ELSEIF DEFINED(__FB_UNIX__)
#DEFINE NEWLINE !"\n" ' UNIX/Linux-Zeilenumbruch
#ELSE
#ERROR "Fehler: Plattform nicht unterstützt"
#ENDIF
DIM AS STRING meldung
meldung = !"\45 Das ist die \"erste\" Zeile\r\nDas "
meldung &= !"ist die \"zweite\" Zeile \45"
PRINT meldung
PRINT NEWLINE & "^-- NEWLINE --v" & NEWLINE;
SLEEP
Ausgabe:
- Das ist die "erste" Zeile
Das ist die "zweite" Zeile -
^-- NEWLINE --v
Das Ausrufezeichen arbeitet als Präprozessor. Es kann nur vor in Anführungszeichen gesetzten Zeichenketten eingesetzt werden, nicht jedoch vor Variablen o. ä. Folgendes Beispiel wird daher einen Compilier-Fehler erzeugen:
DIM AS STRING text = "Text mit einem\r\nZeilenumbruch"
PRINT !text ' nicht erlaubter Aufruf!
Bis FreeBASIC v0.16 war es möglich, den Compiler dazu anzuweisen, generell in allen Strings die Escape-Sequenzen zu interpretieren. Dazu wurde die Anweisung OPTION ESCAPE eingesetzt. Um anschließend Strings zu kennzeichnen, deren Inhalt nicht interpretiert werden sollte, wurde vor diese Strings ein Dollarzeichen $ gesetzt. Seit FreeBASIC v0.17 ist OPTION ESCAPE jedoch nur noch in der Dialektform -lang deprecated erlaubt. Das Dollarzeichen kann zwar weiter verwendet werden, hat aber ohne OPTION ESCAPE keine praktische Auswirkung mehr.
Unterschiede zu QB: neu in FreeBASIC
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|