:FILL
Script-Statement: Speichert mehrere Werte in ein Script-Array.
Syntax
:F[ILL] script array = values
Syntax |
Beschreibung/Format |
---|---|
Script array |
Name der Script-Variable, die als Array definiert wurde. Die Indexklammern sind dabei ohne Inhalt anzugeben. |
values |
Werte die in das Array gespeichert werden sollen. Dazu sind die Script-Funktionen GET_PROCESS_LINE oder GET_VAR zu verwenden. |
Die Script-Funktion dient dazu, um mehrere Werte gleichzeitig in ein Script-Array abzulegen. Arrays müssen mit Hilfe von :DEFINE erstellt werden. Eine Array-Größe muss angegeben werden, da sonst keine Werte zugewiesen werden können. Für die Übergabe der Werte sind die Script-Funktionen GET_PROCESS_LINE, STR_SPLIT oder GET_VAR zu verwenden. Die Werte werden dabei immer ab dem ersten Elemente (Index = 1) in das Array geschrieben.
Übersteigt die Anzahl der zu speichernden Werte die Kapazität des Arrays, werden nur die ersten Werte abgelegt, die Platz im Array finden. Ist das Array größer als die ermittelten Werte, bleiben die restlichen Werte unverändert.
Das Script-Array ist für die Funktion mit leeren Indexklammern [] anzugeben.
Verwenden Sie :PUBLISH, um Arrays an unter- und übergeordnete Objekte weiter zu geben.
Beispiel
Im ersten Beipiel werden Werte eines Variablen-Objektes mit GET_VAR in das Array gespeichert.
:DEFINE &ARRAY#, string, 20
:FILL &ARRAY#[] = GET_VAR(VARA.TEST, KEY1)
:PRINT "First value of the variable VARA.TEST, key KEY1: &ARRAY#[1]"
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:
auch