Sub-rotinas e Funções
Sub-rotinas e Funções do VBScript
Esta secção fornece uma visão geral da utilização de sub-rotinas e procedimentos em scripts VisualBasic do Altum Designer.
Passagem de Parâmetros para Procedimentos
Quando uma função ou sub-rotina (um procedimento/método) que pode aceitar parâmetros é definida num script, as variáveis podem ser passadas para a função ou sub-rotina de duas formas: por referência ou por valor, utilizando ByRef ou ByVal respetivamente.
Para declarar o método pelo qual os parâmetros são passados, utilize as palavras-chave ByRef ou ByVal na lista de parâmetros ao definir a função ou sub-rotina numa instrução Sub ou Function. Por exemplo, o fragmento de código seguinte define uma sub-rotina que aceita dois parâmetros. O primeiro é passado por valor e o segundo por referência:
Sub Test (ByVal Param1 As Integer , ByRef B As String)
A diferença entre os dois métodos é que ByRef passa uma referência para a variável e permite que a sub-rotina/função faça alterações à variável real que é passada como parâmetro. Este é o método predefinido de passagem de parâmetros e é utilizado se o método não for declarado explicitamente.
ByVal passa apenas o valor da variável. A sub-rotina ou função pode utilizar este valor, mas a variável original passada não é alterada.
Os exemplos seguintes ilustram as diferenças entre os métodos. O procedimento principal é o seguinte:
Sub Main
Dim X, Y
X = 45 : Y = "Number"
Test X, Y ' Call to a subprocedure called Test.
MsgBox X
MsgBox Y
End Sub
O procedimento acima inclui uma chamada a um subprocedimento Test — ver abaixo.
Se a sub-rotina for definida da seguinte forma:
Sub Test (ByRef A, ByRef B)
B = B & " = " & A : A = 10*A
End Sub
Então as variáveis X e Y no procedimento principal são referenciadas diretamente pela sub-rotina. O resultado é que os valores de X e Y são alterados pela sub-rotina, pelo que, após a execução de Test; X = 450 e Y = "Number = 45". Este é o comportamento predefinido quando o método não é declarado explicitamente.
Se, no entanto, a sub-rotina for definida da seguinte forma:
Sub Test (ByVal A, ByVal B)
B = B & " = " & A : A = 10*A
End Sub
Então, após a execução de Test, o procedimento principal apresenta; X = 45 e Y = "Number" — ou seja, permanecem inalterados.
Em alternativa, se a sub-rotina for definida da seguinte forma (métodos mistos):
Sub Test (ByRef A, ByVal B)
B = B & " = " & A : A = 10*A
End Sub
Então, após a execução de Test, X = 450 e Y = "Number", uma vez que Y foi passado por valor, permanece inalterado.
Pode substituir a definição ByRef de uma função ou sub-rotina colocando parênteses à volta do nome de uma variável na instrução de chamada.
Chamar Test com a seguinte instrução:
Test (X), Y
...passaria a variável X por valor, independentemente do método definido para esse parâmetro na definição do procedimento.
Rotinas de Data e Hora
A linguagem VBScript suporta um conjunto de rotinas de Data/Hora, conforme descrito abaixo:
|
|
|
|
|
|
|
|
|
|
|
|
Rotinas de E/S de Ficheiros
A linguagem VBScript suporta o seguinte conjunto de rotinas de E/S de ficheiros:
|
|
|
|
|
|
|
|
|
Rotinas Matemáticas
A linguagem VBScript suporta o seguinte conjunto de rotinas matemáticas:
|
|
|
|
|
|
|
|
|
|
|
|
Rotinas de Cadeias de Caracteres
A linguagem VBScript suporta um conjunto de rotinas de cadeias de caracteres, conforme descrito abaixo:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rotinas de Processos do Servidor
As rotinas de processos do servidor são utilizadas ao lidar com processos em scripts, especialmente quando há necessidade de extrair (obter) ou definir cadeias de caracteres para os parâmetros do processo.
Para executar processos e parâmetros em scripts, utilize as seguintes funções:
|
|
|
|
|
|
|
|
|
Useful functions
|
|
|
|
|
|
|
|
|
Useful Dialogs
|
|
|
|
|
|