
Serve para declarar vetores de variáveis. Na linguagem Opus, esses arrays são vetores unidimensionais.
DECL[ARE] [PRIVATE | PUBLIC | STATIC] <vetor>[<exp.N>] = <exp> [,...]
|
PUBLIC |
determina que o vetor será público, isto é, terá escopo global. |
|
STATIC |
determina que o vetor será estático. |
|
PRIVATE |
determina que o vetor será privado. |
|
<vetor> |
determina o nome do vetor. |
|
<exp.N> |
determina a quantidade de elementos do vetor. |
|
<exp> |
representa uma expressão que definirá o tipo, o tamanho e o valor inicial de todos os elementos. |
O comando DECL permite a utilização de vetores em um programa. Vetores são variáveis indexadas cujos índices variam de 1 até <exp.N>, inclusive. Não se pode declarar mais de um vetor em um único comando DECLARE.
Para vetores públicos, quando não se sabe a quantidade de elementos do vetor, no lugar de <exp.N> pode ser declarado um "*" (asterisco), determinando que o vetor terá o último tamanho definido.
Utilizando a opção LONG, o comando DECL permite a declaração de vetores com tamanho maior que 65.535 Bytes. Veja comando DECLARE LONG.
O exemplo a seguir mostra a declaração de dois vetores locais do tipo cadeia.
INPUT TO varnum
DECL vetcad1[10]=SPACE(10)
DECL vetcad2[varnum]=SPACE(50)
O exemplo a seguir mostra a declaração de vetores públicos e vetores locais de mais de um tipo.
@ 1,2 SAY " forneça o nome " GET nome PIC; rep("x",40).
DECLARE PUBLIC vpcad[10] = SPACE(10)
DECLARE PUBLIC vpnum[10] = 10
DECLARE PUBLIC vplog[25]=.T.
DECLARE vl_num[6]=0
DECLARE vl_cad[90] = SPACE(LEN(nome))
O exemplo a seguir mostra como passar vetores LONG como parâmetros e como recebé-los dentro de uma sub-rotina.
prog
declare long v1[50 ]= 0
do proc_1 with v1
…
…
…
proc proc_1
parameters long v1[](n)
…
…
…
$DATE, $FLOAT, $LENTMP, $SIMBOLS, DO, PRIVATE, PUBLIC, PARAMETERS, SET DECIMALS, STATIC, STORE, ACHOICE( ), AFILES( ), AFILL( ), AINS( ) AJOINS( ), CTOD( ), DTOC( ) , FTON( ) e NTOF( ).
