Anterior  Sumário  Próximo  OpenBASE! o Banco de Dados inteligente. Fale conosco!

DECLARE

Propósito

Serve para declarar vetores de variáveis. Na linguagem Opus vetores são unidimensionais.

Sintaxe

DECL[ARE] [[LONG] [DYNAMIC] [PRIVATE | PUBLIC | STATIC]] <vetor>[<exp.N>] = <exp> 

Argumentos

LONG

indica que a quantidade de elementos do vetor pode ser maior que 65.535

DYNAMIC

indica que as cadeias são dinâmicas no vetor

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.

Utilização

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, em subprogramas (procedimentos e funções), no lugar de <exp.N> pode ser declarado um "*" (asterisco).

Para vetores dinãmicos, poniers ou estruturas <exp> não é especificado.

Exemplos

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)

READ

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)

...

outro exemplo mais completo:

decl a1[5]=space(10)

decl private a2[5]=space(10)

decl long static a3[5]=space(10)

decl long public a4[5]=space(10)

decl long pointer a5[5]

decl long static pointer a6[5]

declare dynamic d1[5]

declare dynamic private d2[5]

declare dynamic public d3[5]

declare dynamic static d4[5]

struct {a(Y),b(N)} s

decl s1[]{s}

decl static s3[]{s}

decl public s4[]{s} 

Consulte

PRIVATE, PUBLIC, PARAMETERS, SET DECIMALS, STATIC, STORE.

Anterior  Sumário  Próximo  OpenBASE! o Banco de Dados inteligente. Fale conosco!