:FILL
Verwenden Sie die Script-Anweisung :FILL, um mehrere Werte gleichzeitig in einem Script-Array zu speichern. Bevor dies möglich ist, müssen Sie mit der Script-Anweisung :DEFINE ein Array erstellen. In dieser Anweisung definieren Sie auch die Array-Größe oder die Anzahl der Elemente. Weitere Informationen finden Sie unter :DEFINE und Arrays.
Hinweis: Verwenden Sie :PUBLISH, um Arrays an untergeordnete oder übergeordnete Objekte weiterzugeben.
Syntax
: F[ILL] Script-Array = Werte
Parameter
-
:FILL
Speichert mehrere Werte in einem Script-Array. -
Script-Array
Name der Script-Variablen, die als Array definiert ist. Das Script-Array ist in diesem Parameter mit leeren Indexklammern [] anzugeben. -
Werte
Werte, die im Array gespeichert werden sollen. Wenn die Anzahl der zu speichernden Werte die Größe des Arrays überschreitet, werden nur die ersten Werte gespeichert, bis das Array vollständig gefüllt ist. Alle anderen Werte bleiben unverändert, wenn das Array größer als die ermittelten Werte sind.
Format: Script-Funktion
Tipp: Sie können die folgenden Script-Elemente verwenden, um Werte zuzuordnen, wobei die zurückgegebenen Werte ab dem ersten Element (index=1) in das Array geschrieben werden:
Beispiel
Im ersten Beispiel wird das Array definiert. Dann wird die Script-Funktion GET_VAR in der Anweisung :FILL verwendet, um die Werte eines VARA-Objekts im Array zu speichern. In der Anweisung :PRINT definieren Sie, dass der zweite Wert des Schlüssels KEY1 ausgegeben werden soll, indem Sie die Zahl 2 in eckige Klammern [2] setzen.
: DEFINE &ARRAY# , string, 20
: FILL &ARRAY#[] = GET_VAR(VARA.TEST, KEY1)
:PRINT "Der zweite Wert des Schlüssels KEY1 in der Variablen VARA.TEST lautet &ARRAY#[2]"
Im zweiten Beispiel werden die Spalten der ersten Zeile einer Log-Datei (Automation Engine) in das Array angelegt.
:DEFINE &ARRAY#, string, 20
:SET &HND# = PREP_PROCESS_FILE(WIN01, "C:\AUTOMIC\AUTOMATIONENGINE\TEMP\CPsrv_log_001_00.txt","*","COL=LENGTH","LENGTH_TAB='8=DATE,1,6=TIME,7,200=TEXT'")
:PROCESS &HND#
:FILL &ARRAY#[] = GET_PROCESS_LINE(&HND#)
: ENDPROCESS
: SET &RUNVAR# = 1
:SET &LEN# = LENGTH(&ARRAY#[])
:WHILE &RUNVAR# LE &LEN#
:P "Line &RUNVAR#: &ARRAY#[&RUNVAR#]"
:SET &RUNVAR# = &RUNVAR# + 1
:ENDWHILE
Siehe auch: