Simplesmente não entendi ao certo como funciona o REDEFINES. Poderiam explicar melhor a sua função?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Simplesmente não entendi ao certo como funciona o REDEFINES. Poderiam explicar melhor a sua função?
Rodrigo,
O redefines é utilizado para redefinir um campo com uma configuração diferente da original. Importante: O campo redefinido não pode ser maior que o original. Ambos devem ter o mesmo número de nível. Entre eles não pode haver a definição de outro campo com número de nível menor ou igual ao deles.
Exemplo
03 WS-ANO PIC X(36) VALUE ‘JANFEVMARABRMAIJUNJULAGOSETOUTNOVDEZ’. /// A variavel WS-ANO tem 36 posicoes ocupadas, onde de tres em tres estãos os meses do ano.
03 FILLER REDEFINES WS-ANO. 05 WS-MESES PIC X(03) OCCURS 12 TIMES. /// A variavel WS-MESES terá 12 ocorrencias, onde cada uma terá o tamanho de 03 posicoes e irá herdar o conjunto de tres em tres da variavel WS-ANO
Então , WS-MESES(02) terá o valor FEV
Supondo que o seu programa busca no sistema o mes atual, o mesmo vira em formato de numero. Considere que estamos em Maio e voltou 05. Então WS-MESES(mes-recebidodo sistema) trará MAI.
Obs:
05 WS-SEMESTRE PIC X(18) OCCURS 02 TIMES.Blz ? Ivan