Menu

COBOL - Cláusula de renomeação


A cláusula Renames é usada para dar nomes diferentes a itens de dados existentes. Ele é usado para reagrupar os nomes de dados e dar um novo nome a eles. Os novos nomes de dados podem ser renomeados em grupos ou itens elementares. O nível número 66 é reservado para renomeações.

A seguir está a sintaxe para a cláusula Renames.

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.

Explicação:

  • A renomeação só é possível no mesmo nível. No exemplo acima, WS-A, WS-B e WS-C estão no mesmo nível.

  • A definição de renomeação deve ser a próxima descrição de dados que você deseja renomear.

  • Não use Renames com os números de nível 01 ou 77.

  • Os nomes de dados usados ​​para renomeações devem vir em sequência.

  • Itens de dados com cláusula de ocorrência não podem ser renomeados.

Exemplo:

Vejamos um exemplo abaixo,

IDENTIFICATION DIVISION.
PROGRAM-ID. CBLRNAME.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-DESCRIPTION.
   05 WS-NUM.
      10 WS-NUM1  PIC 9(2) VALUE 11.
      10 WS-NUM2  PIC 9(2) VALUE 22.
   05 WS-CHAR.
      10 WS-CHAR1 PIC X(2) VALUE 'XX'.
      10 WS-CHAR2 PIC X(2) VALUE 'YY'.
   66 WS-RENAME RENAMES WS-NUM2 THRU WS-CHAR2.

PROCEDURE DIVISION.
   DISPLAY "WS-RENAME : " WS-RENAME.
   GOBACK.

Quando você compila e executa o programa acima, ele produz o seguinte resultado.

WS-RENAME : 22XXYY

Pergunta da entrevista:

Diferença entre REDEFINES e RENAMES?

A cláusula RENAMES é usada para reagrupar itens de dados elementares e dá um nome a eles. A cláusula REDEFINES permite que você use diferentes entradas de descrições de dados para descrever a mesma área de memória.