: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: