Operator 'in'

Der Operator in sucht in einer Feldgruppe oder in einer Spalte einer Datentabelle (DataTable) nach einem Wert. Wird der Wert gefunden, ergibt die Auswertung des Ausdrucks 'TRUE' und die Systemvariable sysVar.arrayIndex wird auf den Index des Elements eingestellt, das den Wert enthält. Wird der Wert nicht gefunden, ergibt die Auswertung des Ausdrucks 'FALSE' und sysVar.arrayIndex wird auf 0 eingestellt.

Syntax

Syntaxdiagramm für den Operator 'in'
Suchwert
Ein Ausdruck.
Feldgruppe
Eine eindimensionale Feldgruppe oder ein Element einer mehrdimensionalen Feldgruppe.
Datentabellenspalte
Der Name einer Spalte in einem DataTable-Abschnitt. Der Operator in interagiert mit dieser Spalte, als wäre die Spalte eine eindimensionale Feldgruppe.
Anfang
Eine ganze Zahl oder ein Ausdruck, der in eine ganze Zahl aufgelöst wird. Der Wert von Anfang gibt den Index des ersten Elements an, in dem nach Suchwert gesucht werden soll. Wenn der Wert von Anfang größer als die Zahl der Elemente in der Feldgruppe ist, ergibt die Auswertung des Ausdrucks 'FALSE' und sysVar.arrayIndex wird auf 0 eingestellt. Wenn der in-Ausdruck nicht from Anfang beinhaltet, beginnt die Suche bei dem ersten Element der Feldgruppe oder Spalte. (EGL-Feldgruppenindizes beginnen mit 1 und nicht mit 0.)

Beispiele

Die folgende Tabelle zeigt die Wirkungsweise des Operators in, wenn Sie sich auf einen Zeichenbereich mit dem Namen myArray beziehen, der wie folgt definiert ist:
myArray CHAR(1)[3] {"A", "B", "C"};
Tabelle 1. Wirkungsweise des Operators 'in'
Logischer Ausdruck Wert des Ausdrucks Wert von sysVar. ArrayIndex Kommentar
"A" in myArray true 1  
"C" in myArray from 2 true 3 Die Suche beginnt beim zweiten Element ("B").
"A" in myArray from 2 false 0 Die Suche beginnt beim zweiten Element ("B").
Im nächsten Beispiel ist myArray01D eine eindimensionale Feldgruppe mit Zeichenfolgen, die wie folgt definiert ist:
myArray01D STRING[] = ["ABC", "DEF", "GHI"];
myArray02D ist eine zweidimensionale Feldgruppe, bei der jedes Element (wie z. B. myArray02D[1,1]) ein einzelnes Zeichen enthält. Definition:
myArray02D CHAR(1)[3][3] = [["A", "B", "C"],
                         ["D", "E", "F"],
                         ["G", "H", "I"]];

Die nächste Tabelle zeigt, wie sich der Operator in auf myArray02D auswirkt:

Tabelle 2. Weitere Auswirkungen des Operators 'in'
Logischer Ausdruck Wert des Ausdrucks Wert von sysVar. ArrayIndex Kommentar
"DEF" in myArray01D true 2  
"C" in myArray02D[1] true 1  
"I" in myArray02D[3] from 2 true 3 Die Suche beginnt in der dritten Zeile beim zweiten Element.
"G" in myArray02D[2] from 2 false 0 Die Suche endet beim letzten Element der geprüften Zeile.
"G" in myArray02D[2] from 4 false 0 Der zweite Index ist größer als die Zahl der Spalten, die für die Suche zur Verfügung stehen.

Kompatibilität

Tabelle 3. Überlegungen zur Kompatibilität für den Operator 'in'
Plattform Problem
JavaScript-Generierung Der Operator in wird nicht unterstützt.

Feedback