Enterprise COBOL for z/OS, V4.2, Language Reference
A modificação de referência define um item de dados especificando um caractere mais à esquerda e um comprimento opcional para o item de dados.
- data-name-1
- Deve fazer referência a um item de dados descrito explícita ou implicitamente com o uso DISPLAY, DISPLAY-1 ou NATIONAL.
Um item de grupo nacional é processado como um item de dados elementar da categoria nacional.
data-name-1 pode ser qualificado ou inscrito.
data-name-1 não pode ser um campo de data em janela.
- function-name-1
- Deve fazer referência a uma função alfanumérica ou nacional.
- leftmost-character-position
- Deve ser uma expressão aritmética.
A avaliação da posição do caractere mais à esquerda deve resultar em um número inteiro positivo diferente de zero que seja menor ou igual ao número de
caracteres no item de dados referenciado por data-name-1.
A avaliação da posição do caractere mais à esquerda não deve resultar em um campo de data em janela.
- length
- Deve ser uma expressão aritmética.
A avaliação do comprimento deve resultar em um número inteiro diferente de zero positivo.
A avaliação do comprimento não deve resultar em um campo de data em janela.
A soma da leftmost-character-position menos o valor 1 deve ser menor ou igual ao número de posições de caracteres no data-name-1.
Se o comprimento for omitido, o comprimento usado será igual ao número de posições de caracteres em data-name-1 mais 1, menos a leftmost-character-position.
Para usos DISPLAY-1 e NATIONAL, cada posição de caractere ocupa 2 bytes.
A modificação de referência opera em posições inteiras dos caracteres e não nos bytes individuais dos caracteres nos usos DISPLAY-1 e NATIONAL.
Para o uso do DISPLAY, a modificação de referência opera como se cada caractere fosse um caractere de byte único.
A menos que especificado de outra forma, a modificação de referência é permitida em qualquer lugar em que seja permitido um identificador ou identificador de
função que faça referência a um item ou função de dados com o mesmo uso que o item de dados modificado por referência.
Cada posição de caractere referenciada por data-name-1 ou function-name-1 recebe um número ordinal incrementado em um da posição mais à esquerda para a posição
mais à direita.
A posição mais à esquerda recebe o número ordinal um.
Se a entrada de descrição de dados para data-name-1 contiver uma cláusula SIGN IS SEPARATE, a posição do sinal receberá um número ordinal dentro desse item de dados.
Se o data-name-1 for descrito com o uso DISPLAY e o ponto flutuante externo numérico, editado numérico, alfabético, editado alfanumérico ou externo, o
data-name-1 será operado para fins de modificação de referência, como se tivesse sido redefinido como um item de dados da categoria alfanumérica com o mesmo
tamanho que o item de dados referenciado por data-name-1.
Se data-name-1 for descrito com o uso de NATIONAL e categoria numérico, edição numérica, edição nacional ou ponto flutuante externo, data-name-1 será operado para
fins de modificação de referência, como se fosse redefinido como um dado. item da categoria nacional com o mesmo tamanho que o item de dados referenciado por
data-name-1.
Se data-name-1 for um item de grupo nacional, data-name-1 será processado como um item de dados elementar da categoria national.
Se data-name-1 for um campo de data expandida, o resultado da modificação de referência será uma não data.
A modificação de referência cria um item de dados exclusivo que é um subconjunto de data-name-1 ou um subconjunto do valor referenciado pela function-name-1 e
seus argumentos, se houver.
Este item de dados exclusivo é considerado um item de dados elementar sem a cláusula JUSTIFIED.
Quando uma função é modificada por referência, o item de dados exclusivo possui classe, categoria e uso nacional se o tipo da função for nacional; caso contrário,
ele terá exibição alfanumérica e de uso de classe e categoria.
Quando data-name-1 é modificado por referência, o item de dados exclusivo tem a mesma classe, categoria e uso definidos para o item de dados referenciado por
data-name-1, exceto pelo seguinte:
- Se data-name-1 tiver a categoria editada nacionalmente, o item de dados exclusivo terá a categoria nacional.
- Se data-name-1 tiver uso NATIONAL e categoria editada numérica, numérica ou ponto flutuante externo, o item de dados exclusivo terá a categoria nacional.
- Se data-name-1 tiver uso DISPLAY, e categoria flutuante, edição alfanumérica, número alfanumérico ou externo, o item de dados exclusivo terá a categoria
alfanumérica.
- Se data-name-1 referenciar um item de grupo alfanumérico, o item de dados exclusivo será considerado como tendo DISPLAY e categoria alfanumérica.
- Se data-name-1 fizer referência a um item de grupo nacional, o item de dados exclusivo utilizará NATIONAL e categoria national.
Se o comprimento não for especificado, o item de dados exclusivo criado se estenderá e incluirá a posição do caractere identificado pela
leftmost-character-position até a posição de caractere mais à direita do item de dados referenciado pelo data-name-1.
Evaluation of operands - Avaliação de operandos
A modificação de referência para um operando é avaliada da seguinte maneira:
- Se a subscrição for especificada para o operando, a modificação da referência será avaliada imediatamente após a avaliação do subscrito.
- Se a subscrição não for especificada para o operando, a modificação de referência será avaliada no momento em que a subscrição seria avaliada se os subscritos
tivessem sido especificados.
Reference modification examples - Exemplos de modificação de referência
A instrução a seguir transfere os 10 primeiros caracteres do item de dados referenciado por WHOLE-NAME para o item de dados referenciado por FIRST-NAME.
77 WHOLE-NAME PIC X(25).
77 FIRST-NAME PIC X(10).
...
MOVE WHOLE-NAME(1:10) TO FIRST-NAME.
A instrução a seguir transfere os últimos 15 caracteres do item de dados referenciado por WHOLE-NAME para o item de dados referenciado por LAST-NAME.
77 WHOLE-NAME PIC X(25).
77 LAST-NAME PIC X(15).
...
MOVE WHOLE-NAME(11:) TO LAST-NAME.
A instrução a seguir transfere o quarto e o quinto caracteres da terceira ocorrência de TAB para a variável SUFFIX.
01 TABLE-1.
02 TAB OCCURS 10 TIMES PICTURE X(5).
77 SUFFIX PICTURE X(2).
...
MOVE TAB OF TABLE-1 (3) (4:2) TO SUFFIX.
© Copyright IBM Corp.