COBOL - Layout de Dados


Anúncios


EM COBOL layout é a descrição da utilização de cada campo e os valores presentes. Seguem-se a descrição de dados entradas utilizadas em COBOL:

  • Redefine Cláusula
  • Cláusula renomeia
  • Cláusula Uso
  • Cadernos

Redefine Cláusula

Cláusula Redeifnes é usado para definir um armazenamento de dados com diferentes descrição de dados. No caso de um ou mais itens de dados não são utilizados ao mesmo tempo, então o mesmo armazenamento de dados podem ser utilizados para outro item de dados. O mesmo armazenamento de dados podem ser referidos com diferentes itens de dados.

Sintaxe

Sintaxe é a seguinte de redefine cláusula:

01 WS-OLD PIC X(10).
01 WS-NEW1 REDEFINES WS-OLD PIC 9(8).
01 WS-NEW2 REDEFINES WS-OLD PIC A(10).

Na sequência estão os detalhes dos parâmetros utilizados.

  • WS-VELHO é redefinido Item
  • WS-NOVA1 e WS-NOVA2 estão redefinindo Item

Números do Nível da redefinição e redefinindo item deve ser o mesmo e não pode ser 66 ou 88 número do nível. Não valor de uso cláusula com a redefinição item. Na seção de arquivo, não use um redefine cláusula com 01 número do nível. Redefine definição deve ser o próximo descrição de dados você deseja redefinir. Uma redefinição item terá sempre o mesmo valor, como redefiniu item.

Exemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-DESCRIPTION.
   05 WS-DATE1 VALUE '20140831'.
   10 WS-YEAR PIC X(4).
   10 WS-MONTH PIC X(2).
   10 WS-DATE PIC X(2).
   05 WS-DATE2 REDEFINES WS-DATE1 PIC 9(8).

PROCEDURE DIVISION.
   DISPLAY "WS-DATE1 : "WS-DATE1.
   DISPLAY "WS-DATE2 : "WS-DATE2.

STOP RUN.

JCL para executar o programa em COBOL.

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Quando você compilar e executar o programa acima referido que produz o seguinte resultado:

WS-DATE1 : 20140831
WS-DATE2 : 20140831

Cláusula renomeia

Renomeia cláusula é utilizada para dar nomes diferentes para os itens de dados. Ele é usado para re-agrupar os dados nomes e dar um novo nome a eles. Os novos dados os nomes podem mudar em todos os grupos ou itens elementares. Número do Nível 66 é reservado para muda.

Sintaxe

Sintaxe é a seguinte para renomeia cláusula:

01 WS-OLD.
10 WS-A PIC 9(12).
10 WS-B PIC X(20).
10 WS-C PIC A(25).
10 WS-D PIC X(12).
66 WS-NEW RENAMES WS-A THRU WS-C.

A renomeação é possível no mesmo nível. No exemplo acima ,WS-A, WS-B, e WS-C estão no mesmo nível. Renomeia definição deve ser o próximo descrição de dados que você deseja renomear. Não use renomeia com 01,77 ou 66º número do nível. Os dados os nomes utilizados para renomeia deve vir na seqüência. Os itens de dados com ocorrer cláusula não pode ser renomeado.

Exemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-DESCRIPTION.
   05 WS-NUM.
   10 WS-NUM1 PIC 9(2) VALUE 20.
   10 WS-NUM2 PIC 9(2) VALUE 56.
   05 WS-CHAR.
   10 WS-CHAR1 PIC X(2) VALUE 'AA'.
   10 WS-CHAR2 PIC X(2) VALUE 'BB'.
   66 WS-RENAME RENAMES WS-NUM2 THRU WS-CHAR2.

PROCEDURE DIVISION.
   DISPLAY "WS-RENAME : " WS-RENAME.
   
STOP RUN.

JCL para executar o programa em COBOL.

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Quando você compilar e executar o programa acima referido, que produz o seguinte resultado:

WS-RENAME : 56AABB

Cláusula Uso

Cláusula especifica o uso sistema operacional em que o formato de dados é armazenado. Ela não pode ser usada com números do nível 66 ou 88. Se uso cláusula é especificado em um grupo e, em seguida, todos os itens elementares terá o mesmo uso cláusula.As diferentes opções disponíveis com o uso cláusula são as seguintes:

Exibir

Item de Dados é armazenada em formato ASCII e cada personagem terá 1 byte. É utilização padrão.

O exemplo a seguir para calcula o número de bytes necessários:

01 WS-NUM PIC S9(5)V9(3) USAGE IS DISPLAY.
It requires 8 bytes as sign and decimal doesn't require any byte.

01 WS-NUM PIC 9(5) USAGE IS DISPLAY.
It requires 5 bytes as sign.

COMPUTAÇÃO / COMP

Item de Dados é armazenado em um formato binário. Aqui itens de dados deve ser um inteiro.

O exemplo a seguir calcula o número de bytes necessários:

01 WS-NUM PIC S9(n) USAGE IS COMP.

If 'n' = 1 to 4, it takes 2 bytes.
If 'n' = 5 to 9, it takes 4 bytes.
If 'n' = 10 to 18, it takes 8 bytes.

COMP-1

Item de Dados é semelhante ao Real ou flutuante e é representado como um único número de ponto flutuante de precisão. Internamente os dados são armazenados no formato hexadecimal. COMP-1 não aceita PIC cláusula. Aqui 1º termo é igual a 4 bytes.

COMP-2

Item de Dados é semelhante ao longa ou Dupla e é representado como ponto flutuante de precisão dupla. Internamente os dados são armazenados no formato hexadecimal. COMP-2 não especificar PIC cláusula. Aqui 2 palavra é igual a 8 bytes.

COMP-3

Item de Dados é armazena na embalagem formato decimal. Cada dígito ocupa metade de um byte (1 beliscar) e o sinal é armazenado no lado direito mais beliscar.

O exemplo a seguir calcula o número de bytes necessários:

01 WS-NUM PIC 9(n) USAGE IS COMP.
Number of bytes = n/2 (If n is even)
Number of bytes = n/2 + 1(If n is odd, consider only integer part)

01 WS-NUM PIC 9(4) USAGE IS COMP-3 VALUE 21.
It requires 2 bytes of storage as each digit occupies half a byte.

01 WS-NUM PIC 9(5) USAGE IS COMP-3 VALUE 21.
It requires 3 bytes of storage as each digit occupies half a byte.

Cadernos

A nódoa COBOL é uma selecção do código que define as estruturas de dados. Se uma determinada estrutura de dados é utilizado em vários programas, em seguida, em vez de escrever a mesma estrutura de dados novamente, podemos usar cadernos. Nós usamos a cópia declaração para incluir uma imagem negativa de um programa. COPIE comando é usado na Working-Storage Seção.

O exemplo a seguir para incluir nódoa dentro programa em COBOL:

DATA DIVISION.
WORKING-STORAGE SECTION.
COPY ABC.

Aqui ABC nódoa é o nome. Os seguintes itens de dados no ABC imagem negativa pode ser usado dentro de um programa.

01 WS-DESCRIPTION.
   05 WS-NUM.
      10 WS-NUM1 PIC 9(2) VALUE 20.
      10 WS-NUM2 PIC 9(2) VALUE 56.
   05 WS-CHAR.
      10 WS-CHAR1 PIC X(2) VALUE 'AA'.
      10 WS-CHAR2 PIC X(2) VALUE 'BB'.


Advertisements