Operatoren
In FPScript können Sie eine Vielzahl von Operatoren verwenden u. a. für arithmetische und logische Operationen, Vergleichs- und Verkettungsoperationen. Mit den Operatoren können Sie einzelne Werte oder auch ganze Datenreihen, Datenmatrizen, Signale, Signalreihen oder Raumkurven verrechnen.
Operatorvorrang
Wenn in einem Ausdruck mehrere Operatoren vorkommen, wird jeder Bestandteil in einer vordefinierten Reihenfolge ausgewertet und aufgelöst. Diese Reihenfolge wird als Operatorvorrang bezeichnet. Sie können den Operatorvorrang mit Klammern übergehen und die Auswertung von Bestandteilen eines Ausdrucks vor anderen Bestandteilen erzwingen. Operationen innerhalb von Klammern werden immer vor den Operationen außerhalb von Klammern ausgeführt. Innerhalb der Klammern gilt jedoch der normale Operatorvorrang.
Wenn ein Ausdruck Operatoren verschiedener Kategorien enthält, werden diese in der unten angegebenen Reihenfolge ausgewertet. Alle Vergleichsoperatoren haben denselben Rang, d. h. sie werden in der Reihenfolge ihres Auftretens von links nach rechts ausgewertet. Arithmetische und logische Operatoren werden in der folgenden Reihenfolge ausgewertet:
Beschreibung |
Symbol |
---|---|
Konvertierung |
|
Boolean |
|
Integer16 |
|
Integer32 |
|
Integer64 |
|
FloatingPoint32 |
|
FloatingPoint64 |
|
ComplexInteger16 |
|
ComplexInteger32 |
|
ComplexInteger64 |
|
ComplexFloatingPoint32 |
|
ComplexFloatingPoint64 |
|
String |
|
CalendarTime |
|
TimeSpan |
|
Unit |
|
Value |
|
Arithmetisch |
|
- |
|
^ |
|
* |
|
/ |
|
Mod |
|
+ |
|
- |
|
# |
|
Komplexe Zahlen |
|
Real |
|
Imag |
|
* |
|
Vergleich * |
|
< |
|
> |
|
<= |
|
>= |
|
== |
|
<> |
|
Logisch |
|
~ |
|
& |
|
XOr |
|
| |
|
Not |
|
And |
|
Or |
|
Datenorganisation |
|
: |
|
# |
|
( , ) |
|
{ , } |
|
( , , ) |
|
[ , ] |
|
Datenzugriff |
|
.X .Y .Z |
|
. |
|
.[ ] |
|
[ , ] [[ , ]] |
|
$$ |
Wenn in einem Ausdruck Multiplikationen und Divisionen auftreten, wird jede Operation in der Reihenfolge ihres Auftretens von links nach rechts ausgeführt. Genauso wird verfahren, wenn in einem Ausdruck Addition und Subtraktion oder Verkettung und Vervielfachung vorkommen.
Assoziativität
Die Potenzierung ist der einzige Operator der rechts-assoziativ ist. Das bedeutet, dass mehrere Potenzierungen in Folge von rechts nach links aufgelöst werden. Alle anderen Operatoren werden von links nach rechts abgearbeitet.
Verarbeitung logischer Ausdrücke
Eine logische Konjunktion (Und-Verknüpfung) oder Folgen hiervon werden nur soweit ausgewertet, bis das Ergebnis definitiv feststeht, d. h. bis der erste Ausdruck FALSE ergibt. Das Gleiche gilt für die logische Disjunktion (Oder-Verknüpfung). Diese werden ausgewertet, bis der erste Ausdruck TRUE ergibt. Dies gilt nicht für die bitweisen Logikoperationen.
Im folgenden Beispiel wird Test(Datensatz2) nur aufgerufen, wenn Test(Datensatz1) TRUE ergibt. Wenn Test(Datensatz1) nämlich FALSE ergibt, dann liegt das Endergebnis der Und-Verknüpfung mit FALSE fest.
If Test(Datensatz1) And Test(Datensatz2) Then
...
End
* Dieser Operator bzw. alle Operatoren dieser Kategorie sind in FlexPro View nicht verfügbar.