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) |
SRINIVASAN | SRXXIVASAN |
SRINIVASAN | SRINIVASAN |
SRINIVASAN | SRINIVASAN |
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.