Call
O comando de controle call chama uma sub-rotina que deve ser definida por um comando sub prévio.
Sintaxe:
Call name ( [ paramlist ])
Argumentos:
Argumento | Descrição |
---|---|
name | O nome da sub-rotina. |
paramlist | Uma lista separada por vírgulas dos parâmetros reais que serão enviados para a sub-rotina. Cada item da lista deve ser um nome de campo, uma variável ou uma expressão arbitrária. |
A sub-rotina chamada por uma declaração call deve ser definida por um sub encontrado anteriormente durante a execução do script.
Os parâmetros são copiados na sub-rotina, e, se o parâmetro na instrução call for um nome de campo, serão copiados novamente ao sair da sub-rotina.
Limitações:
Como o comando call é de controle e, portanto, termina com um ponto e vírgula ou com um fim de linha, ele não deve cruzar um limite de linha.
Exemplo 1:
// Example 1
Sub INCR (I,J)
I = I + 1
Exit Sub when I < 10
J = J + 1
End Sub
Call INCR (X,Y)
Exemplo 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:')