Call
Der Steuerungsbefehl call ruft eine Subroutine auf, die vorher durch einen sub-Befehl definiert werden muss.
Syntax:
Call name ( [ paramlist ])
Argumente:
Argument | Beschreibung |
---|---|
name | Der Name der Subroutine. |
paramlist | Eine durch Komma getrennte Liste der Parameter, die an die Subroutine übergeben werden. Jeder Eintrag dieser Liste kann ein Feldname, eine Variable oder eine beliebige Formel sein. |
Die Subroutine, die von einem call-Befehl aus aufgerufen wird, muss bereits an einer vorherigen Stelle im Skript durch ein sub definiert sein.
Die Parameter werden dabei in die Subroutine kopiert und, sofern es sich beim Parameter im call-Befehl um eine Variable und nicht um eine Formel handelt, beim Beenden der Subroutine auch wieder zurückkopiert.
Beschränkungen:
Da call zu den Steuerungsbefehlen gehört und daher mit einem Semikolon oder einer Zeilenschaltung abschließt, darf sich der Befehl nicht über mehrere Zeilen erstrecken.
Beispiel 1:
// Example 1
Sub INCR (I,J)
I = I + 1
Exit Sub when I < 10
J = J + 1
End Sub
Call INCR (X,Y)
Beispiel 2:
// Example 2 - List all QV related files on disk
sub DoDir (Root)
For Each Ext in 'qvw', 'qvo', 'qvs', 'qvt', 'qvd', 'qvc'
For Each File in filelist (Root&'\*.' &Ext)
LOAD
'$(File)' as Name, FileSize( '$(File)' ) as
Size, FileTime( '$(File)' ) as FileTime
autogenerate 1;
Next File
Next Ext
For Each Dir in dirlist (Root&'\*' )
Call DoDir (Dir)
Next Dir
End Sub
Call DoDir ('C:')