Konstanten
Konstanten, die Sie in FPScript verwenden, unterliegen speziellen Syntax-Regeln, wobei FlexPro anhand der Schreibweise nicht nur den Wert, sondern auch den Datentyp erkennen kann.
Ganzzahlen können in dezimaler, oktaler und hexadezimaler Schreibweise geschrieben werden. Oktalzahlen werden mit einer führenden Null geschrieben und dürfen nur die Ziffern 0 bis 7 enthalten. Hexadezimalzahlen werden mit der Kombination 0x eingeleitet und können die Ziffern 0 - 9 und A - F enthalten. Hexadezimale und oktale Darstellung sind für Digitaldaten interessant, weil ein direkter Bezug zwischen den Ziffern und den Bits, die diese repräsentieren, besteht. Bei Oktalzahlen ergeben je drei Bits eine Ziffer und bei Hexadezimalzahlen je vier Bits eine Ziffer. Beachten Sie, dass es sich hierbei nur um verschiedene Schreibweisen für Ganzzahlen handelt. Intern werden alle Ganzzahlen binär abgelegt.
Ganzzahlen kann FlexPro mit 16-, 32- und 64-Bit Auflösung verarbeiten. Sie können die Auflösung durch Anhängen eines 'S' oder 's' für "Short" bzw. eines 'L' oder 'l' für "Long" steuern. Wenn Sie das Suffix 'N' oder 'n' anhängen, entspricht dies 32-Bit Ganzzahlen oder 64-Ganzzahlen, je nachdem in welches Format die Konstante passt.
Beispiele für 16-Bit Ganzzahlen sind:
123s |
Dezimal |
0427s |
Oktal |
0x1afs |
Hexadezimal |
Beispiele für 32-Bit Ganzzahlen sind:
100000n, 12n |
Dezimal |
01024341121, 0123 |
Oktal |
0x10A00FF, 0x1A, 0x1a |
Hexadezimal |
Beispiele für 64-Bit Ganzzahlen sind:
10000000000n, 12L |
Dezimal |
071024341121, 0123L |
Oktal |
0x1010A00FF, 0x1AL, 0x1aL |
Hexadezimal |
Fließkommazahlen bestehen aus einer Mantisse mit Vor- und Nachkommastellen und einem optionalen Exponenten, der mit e oder E eingeleitet wird. Fließkommazahlen können auch den Wert Ungültig haben. Dieser Wert wird als ? dargestellt.
Fließkommazahlen kann FlexPro mit 32- und 64-Bit Auflösung verarbeiten. 32-Bit Fließkommazahlen haben eine Genauigkeit von ca. sieben Dezimalstellen und 64-Bit Fließkommazahlen haben eine Genauigkeit von ca. fünfzehn Dezimalstellen. Sie können die Auflösung auch hier durch Anhängen eines 'S' oder 's' für "Short" bzw. eines 'L' oder 'l' für "Long" steuern. Wenn Sie kein Suffix anhängen, entspricht dies immer 64-Bit Fließkommazahlen, das Suffix 'L' kann also immer weggelassen werden.
Hinweis Für FPScript-Code gilt immer der Dezimalpunkt (.) als Dezimaltrennzeichen, auch wenn Sie in den Regions- und Sprachoptionen der Windows-Systemsteuerung als Dezimaltrennzeichen das in Deutschland übliche Komma (,) eingestellt haben.
Beispiele für 32-Bit Fließkommazahlen sind:
1.23s, 1.234e-12s, 1e+13s, 0.1e12s, 5.s, ?s |
FlexPro erkennt nicht, ob der Wertebereich oder die Auflösung überschritten wurde. Wenn Sie 64-Bit Fließkommazahlen erhalten möchten, müssen Sie das 's' weglassen.
Beispiele für 64-Bit Fließkommazahlen sind:
1.23, 1.234e-12, 1e+13, 0.1e12L, 5.L, ?, ?L |
Generell dürfen innerhalb von Zahlen keine Leerzeichen verwendet werden, auch nicht zwischen Mantisse und Exponent. Wenn bei einer Berechnung ein Überlauf entsteht, kann FlexPro dies nicht erkennen! Sie müssen darauf achten, dass der Wertebereich des Datentyps ausreicht, um die Berechnung durchzuführen.
Beispiel:
1000s * 1000s |
Erzeugt einen Überlauf, weil das Ergebnis 1.000.000 nicht in eine 16-Bit Ganzzahl passt! (Abhilfe: 1000n * 1000n) |
Hinweis Wie Dezimalzahlen, die Sie weder mit einem Suffix noch mit einem Dezimalpunkt eingegeben haben, interpretiert werden, hängt von der Einstellung Dezimalzahlen ohne Dezimalpunkt als Fließkommazahlen interpretieren auf der Registerkarte Allgemein im Eigenschaften-Dialogfeld der Datenbank ab. Standardmäßig ist die Option eingeschaltet, d h. die Zahlen werden als 64-Bit Fließkommazahlen interpretiert. Diese Einstellung verhindert versehentliche Rundungsfehler, die bei Ganzzahlarithmetik auftreten können, die ganzzahlige Division 1 / 2 liefert z. B. 0 und nicht 0.5.
Komplexe Zahlen bestehen aus Realteil- und Imaginärteil, entweder Komma getrennt und eingeklammert oder in der Form a + bi. Für Realteil und Imaginärteil können Sie alle obigen Schreibweisen für Konstanten verwenden. Wenn sich hieraus unterschiedliche Datentypen für Realteil und Imaginärteil ergeben, werden diese vor der Zusammenfassung zur Komplexen Zahl so aneinander angepasst, dass kein Auflösungsverlust auftritt. Innerhalb von FPScript gilt immer das Komma (,) als Listentrennzeichen, auch wenn Sie in den Regions- und Sprachoptionen der Windows-Systemsteuerung als Listentrennzeichen das in Deutschland übliche Semikolon (;) eingestellt haben.
Beispiele für Komplexe Zahlen sind:
(1.23s, 1.234e-12s) , (1e+13, 0x1), (5.L, ?), 1 + 2i, -3.2 - 7.6i, 5.2i, ?i, 2s + 5si
Zeichenketten geben Sie als Text ein, der in Anführungszeichen eingebettet ist. Für Sonderzeichen, wie z. B. Tabulator und Zeilenwechsel stehen spezielle Steuersequenzen zur Verfügung, welche alle mit einem '\'-Zeichen eingeleitet werden.
Hinweis Wenn Sie das '\'-Zeichen selbst verwenden möchten, müssen Sie es doppelt schreiben. Der Dateipfad C:\Daten.txt muss z. B. als Zeichenkette "C:\\Daten.txt" geschrieben werden.
Steuersequenz |
Steht für |
---|---|
\b |
Rückschritt (Backspace) |
\f |
Seitenvorschub (Form feed) |
\n |
Zeilenwechsel (New line) |
\r |
Wagenrücklauf (Carriage return) |
\t |
Horizontaler Tabulator (Horizontal tab) |
\v |
Vertikaler Tabulator (Vertical tab) |
\' |
Einfaches Anführungszeichen |
\" |
Doppeltes Anführungszeichen |
\\ |
Backslash |
\oooooo |
UNICODE Zeichen in oktaler Notation |
\xhhhh |
UNICODE Zeichen in hexadezimaler Notation |
Beispiele für Zeichenketten sind:
"Ein Text", "C:\\Daten\\File.txt", "Zwei\r\nZeilen"
Der Datentyp Leer kann ebenfalls als Konstante verwendet werden, z. B. innerhalb einer Formel verwendete Variable zu leeren. Hierzu müssen Sie einfach Empty zuweisen:
Result = Empty
Kalenderzeitwerte bestehen aus Datum und Uhrzeit, wobei Sie die Sekunden optional mit Nachkommastellen angeben können. Innerhalb von FPScript sind nur drei Formate erlaubt. Wenn Sie die Datumselemente mit einem '.' trennen, dann wird als Reihenfolge Tag.Monat.Jahr angenommen, wenn Sie '/' als Trennzeichen verwenden, dann wird dies als Monat/Tag/Jahr interpretiert und wenn Sie '-' als Trennzeichen verwenden, dann wird dies als Jahr-Monat-Tag interpretiert. Das Jahr können Sie zwei oder vierstellig angeben. Im zweistelligen Format wird für Werte kleiner als 70 2000 und ansonsten 1900 addiert. Wie für Fließkommadatentypen gib es auch für Kalenderzeiten den Wert Ungültig, welcher als '?/?/?' dargestellt wird. Die Elemente der Uhrzeit werden immer in der Form HH:MM:SS.ss angegeben. Sie können Zeitelemente von rechts her weglassen, welche dann als Null angenommen werden. Konstanten im Kalenderzeitformat müssen generell in einfache Anführungszeichen geschrieben werden.
Optional können Sie die Zeitzone angeben, in der die Kalenderzeitwertkonstante interpretiert werden soll. Hierzu hängen Sie den Zeitversatz zur Koordinierten Weltzeit (UTC) in Stunden an, z. B. "UTC+1". Wenn Sie keine Zeitzone festlegen, werden die Kalenderzeitwertkonstanten als Lokalzeit interpretiert, d. h. diese werden unter Berücksichtigung der in Windows eingestellten Zeitzone und ggf. der Sommerzeit in das zur internen Speicherung verwendete UTC-Format umgewandelt.
'23.10.2004 12:13:24.123' |
Kalenderzeitwert mit Auflösung 1ms |
'10/23/2011 12:13:24.123' |
Kalenderzeitwert in englischer Schreibweise mit Auflösung 1ms |
'2004-10-23 12:13:24.123' |
Kalenderzeitwert in der Anordnung Jahr-Monat-Tag |
'23.10.2004 12' |
Kalenderzeitwert 23.10.2004 Zwölf Uhr Mittag |
'23.10.2004' |
Kalenderzeitwert 23.10.2004 Null Uhr |
'1.1.24' |
Kalenderzeitwert 1.1.2024 Null Uhr |
'1.1.98' |
Kalenderzeitwert 1.1.1998 Null Uhr |
'?/?/?' |
Ungültiger Kalenderzeitwert |
'1.2.2021 13:14' |
1.2.2021, 13:14 Uhr in Lokalzeit |
'1.2.2021 13:14 UTC' |
1.2.2021, 13:14 Uhr in Koordinierter Weltzeit (UTC) |
'1.2.2021 13:14 UTC-2' |
1.2.2021, 13:14 Uhr in UTC minus 2 Stunden |
'1.2.2021 13:14 UTC+2:30' oder '1.2.2021 13:14 UTC+2.5' |
1.2.2021, 13:14 Uhr in UTC plus 2 Stunden, 30 Minuten |
Zeitspannenwerte bestehen aus den Elementen Tag, Stunde, Minute und Sekunde wobei Sie die Sekunde optional mit Nachkommastellen angeben können. Die Elemente werden in der Form T:HH:MM:SS.ss angegeben. Sie müssen nicht alle Elemente angeben. Wenn Sie zwei Elemente angeben, dann wird dies als HH:MM interpretiert. Geben Sie drei Elemente an, dann wird die als HH:MM:SS interpretiert und vier Elemente werden schließlich als T:HH:MM:SS interpretiert. Bei der Ausgabe verwendet FlexPro standardmäßig drei oder vier Elemente. Der Tag wird weggelassen, wenn die Zeitspanne kleiner als 24 Stunden ist. Konstanten im Zeitspannenformat müssen generell in einfache Anführungszeichen geschrieben werden:
'12:13:24.123' |
Zeitspannenwert mit Auflösung 1ms |
'13:24' |
Zeitspannenwert 13 Stunden und 24 Minuten |
'2:01:30:00' oder '49:30' |
Zeitspannenwert 2 Tage, 1 Stunde und 30 Minuten |
'?:?:?' |
Ungültiger Zeitspannenwert |
Hinweis Die Kalenderzeit- und Zeitspannenwerte haben die implizite Einheit Sekunde. Das Einheitensymbol wird jedoch nicht angezeigt.
Vordefinierte Konstanten
FPScript kennt eine Reihe von vordefinierten Konstanten. Die Namen der Konstanten dürfen Sie nicht als Objektnamen oder als Variablennamen verwenden. Es sind dies die mathematischen Konstanten PI = 3.141592654L und E = 2.718281828L sowie eine Reihe von Konstanten, die als Parameter für Funktionen eine vordefinierte Bedeutung haben.