Menu

COBOL - Subscript Clause


Use o nome de dados do elemento da tabela, junto com seu número de ocorrência (chamado de subscrito) entre parênteses. Essa técnica é chamada de subscripting.

  • Os elementos individuais da tabela podem ser acessados ​​usando subscript.

  • Os valores Subscript podem variar de 1 ao número de vezes que a tabela ocorre. Um subscript pode ser qualquer número positivo.

  • Não requer nenhuma declaração na divisão de dados. Ele é criado automaticamente com a cláusula ocorra.
Exemplo 1:

01  ANY-TABLE.
    05 TABLE-ELEMENT     PIC X(10) OCCURS 3 TIMES   VALUE "SRINIVASAN".

........

MOVE "XX" TO TABLE-ELEMENT (1) (3 : 2).

A instrução MOVE no exemplo acima move a string 'XX' para o elemento de tabela número 1, começando na posição do caractere 3, para um comprimento de 2 caracteres.

ANY-TABLE(before change)ANY-TABLE(after change)
SRINIVASANSRXXIVASAN
SRINIVASANSRINIVASAN
SRINIVASANSRINIVASAN

Exemplo 2:

01 WS-TABLE.
   05 WS-A OCCURS 3 TIMES.
      10 WS-B PIC A(2).
      10 WS-C OCCURS 2 TIMES.
         15 WS-D PIC X(3).

........

MOVE '12ABCDEF34GHIJKL56MNOPQR' TO WS-TABLE.
DISPLAY 'WS-TABLE  : ' WS-TABLE.
DISPLAY 'WS-A(1)   : ' WS-A(1).
DISPLAY 'WS-C(1,1) : ' WS-C(1,1).
DISPLAY 'WS-C(1,2) : ' WS-C(1,2).
DISPLAY 'WS-A(2)   : ' WS-A(2).
DISPLAY 'WS-C(2,1) : ' WS-C(2,1).
DISPLAY 'WS-C(2,2) : ' WS-C(2,2).
DISPLAY 'WS-A(3)   : ' WS-A(3).
DISPLAY 'WS-C(3,1) : ' WS-C(3,1).
DISPLAY 'WS-C(3,2) : ' WS-C(3,2).

Output:

WS-TABLE  : 12ABCDEF34GHIJKL56MNOPQR
WS-A(1)   : 12ABCDEF
WS-C(1,1) : ABC
WS-C(1,2) : DEF
WS-A(2)   : 34GHIJKL
WS-C(2,1) : GHI
WS-C(2,2) : JKL
WS-A(3)   : 56MNOPQR
WS-C(3,1) : MNO
WS-C(3,2) : PQR

Elementos de tabela também podem ser acessados ​​usando index. O próximo capítulo vai discutir sobre o Index.