INIT nos permite eliminar declarações da seção de "inicialização" dos nossos programas, isto é, as declarações imediatamente antes da linha principal. (ver exemplo de código associado, "Considerando INIT (e formatos de dados)") Pena que não podemos usar INIT para redefinições.
Programa 1
Muitas vezes, nós definimos uma grande variável alfa, em seguida, redefini-la para especificar seus componentes (estrutura). A palavra-chave INIT não é permitido nas redefinições, por isso, codificar declarações ASSIGN explícitas. No nosso exemplo, nós usamos a redefinição do valor inicial de um superdescriptor do arquivo de funcionários.
Para as pequenas estruturas, como no nosso exemplo, temos a opção de inicializar o "grande alpha", mas para estruturas complexas isso seria complicado e difícil de ler e manter.
Uma solução simples é virar as redefinições. Começamos com uma estrutura e redefinindo-a para ser o "large alpha."
Programa 1
Muitas vezes, nós definimos uma grande variável alfa, em seguida, redefini-la para especificar seus componentes (estrutura). A palavra-chave INIT não é permitido nas redefinições, por isso, codificar declarações ASSIGN explícitas. No nosso exemplo, nós usamos a redefinição do valor inicial de um superdescriptor do arquivo de funcionários.
> > + Program AAFPCS01 Lib NAT2CUR
All ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 DEFINE DATA LOCAL
0020 1 EMP VIEW EMPLOYEES
0030 2 DEPT
0040 2 NAME
0050 1 #DEPT-PERSON (A26) 1 REDEFINE #DEPT-PERSON
0060 2 #DEPT (A6) /* INIT <"ADMA01">
0070 2 #PERSON (A20) /* INIT <"MADSen">
0080 END-DEFINE
0090 ASSIGN #DEPT = "ADMA01"
0100 ASSIGN #PERSON = "MADSEN"
0110 FIND EMP WITH DEPT-PERSON = #DEPT-PERSON
0120 DISPLAY DEPT
0130 NAME
0140 END
0150
0160
0170
0180
0190
0200
....+....1....+....2....+....3....+....4....+....5....+... S 14 L 1
Resultado do Programa
MORE
PAG 1 14/10/15 12:37:19
DEPARTMENT NAME
CODE
---------- --------------------
ADMA01 MADSEN
Program 2
Para as pequenas estruturas, como no nosso exemplo, temos a opção de inicializar o "grande alpha", mas para estruturas complexas isso seria complicado e difícil de ler e manter.
> > + Program AAFPCS01 Lib NAT2CUR
All ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 DEFINE DATA LOCAL
0020 1 EMP VIEW EMPLOYEES
0030 2 DEPT
0040 2 NAME
0050 1 #DEPT-PERSON (A26) INIT <"ADMA01MADSEN">
0060 END-DEFINE
0070 FIND EMP WITH DEPT-PERSON = #DEPT-PERSON
0080 DISPLAY DEPT
0090 NAME
0100 END
0110
0120
0130
0140
0150
0160
0170
0180
0190
0200
....+....1....+....2....+....3....+....4....+....5....+... S 10 L 1
Resultado do Programa
MORE
PAG 1 14/10/15 12:37:56
DEPARTMENT NAME
CODE
---------- --------------------
ADMA01 MADSEN
Programa 3
Uma solução simples é virar as redefinições. Começamos com uma estrutura e redefinindo-a para ser o "large alpha."
> > + Program AAFPCS01 Lib NAT2CUR
All ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 DEFINE DATA LOCAL
0020 1 EMP VIEW EMPLOYEES
0030 2 DEPT
0040 2 NAME
0050 1 #DP-DEF /* Define a structure
0060 2 #DEPT (A6) INIT <"ADMA01">
0070 2 #PERSON (A20) INIT <"MADSEN">
0080 1 REDEFINE #DP-DEF /* Define the block
0090 2 #DEPT-PERSON (A26)
0100 END-DEFINE
0110 FIND EMP WITH DEPT-PERSON = #DEPT-PERSON
0120 DISPLAY DEPT
0130 NAME
0140 END
0150
0160
0170
0180
0190
0200
....+....1....+....2....+....3....+....4....+....5....+... S 14 L 1
Resultado do Programa
MORE
PAG 1 14/10/15 12:38:30
DEPARTMENT NAME
CODE
---------- --------------------
ADMA01 MADSEN
Original - Clique Aqui

0 comentários:
Enviar um comentário