Call
La sentencia de control call llama a una subrutina que debe ser definida por una sentencia sub previa.
Sintaxis:
Call name ( [ paramlist ])
Argumentos:
Argumento | Descripción |
---|---|
name | El nombre de la subrutina. |
paramlist | Una lista separada por comas de los parámetros que se habrán de enviar a la subrutina. Cada elemento de la lista puede ser un nombre de campo, una variable o una expresión arbitraria. |
La subrutina invocada mediante una sentencia call debe ir definida por un sub encontrado anteriormente durante la ejecución del script.
Los parámetros se copian en la subrutina y, si el parámetro en la sentencia call es una variable y no una expresión, se copia de nuevo fuera, al salir de la subrutina.
Limitaciones:
Como la sentencia call es una sentencia de control y, como tal, termina con un punto y coma o fin de línea, no deberá sobrepasar el límite de una línea.
Ejemplo 1:
// Example 1
Sub INCR (I,J)
I = I + 1
Exit Sub when I < 10
J = J + 1
End Sub
Call INCR (X,Y)
Ejemplo 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:')