Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Como mover para o primeiro registro quando não se tem conhecimento da chave

No vídeo do aula ele move o ponteiro do registro informando o valor da chave do primeiro registro, porém fico imaginando um arquivo com milhares de linhas e você quer gerar um relatório, em tempo de desenvolvimento não se tem conhecimento da chave do primeiro registro, como poderia ser feito?

Seria algo assim?

MOVE 0000000 TO CLIENTES-FONE

1 resposta
solução!

Olá, Rogerio! Tudo bem?

Para mover o ponteiro para o primeiro registro de um arquivo em COBOL, mesmo sem conhecer a chave, você pode usar o comando START sem especificar uma chave. Isso posiciona o ponteiro no início do arquivo. A partir daí, você pode usar o comando READ para ler o primeiro registro e continuar lendo os registros subsequentes com READ NEXT.

Aqui está um exemplo simplificado de como isso pode ser feito:

START CLIENTES-FILE KEY IS NOT LESS THAN LOW-VALUES
    INVALID KEY
        DISPLAY 'Erro ao posicionar no primeiro registro.'
    NOT INVALID KEY
        PERFORM UNTIL END-OF-FILE
            READ CLIENTES-FILE
                AT END
                    SET END-OF-FILE TO TRUE
                NOT AT END
                    DISPLAY CLIENTES-RECORD
            END-READ
        END-PERFORM.

Neste exemplo, LOW-VALUES é usado para garantir que o ponteiro se posicione no início do arquivo. A partir daí, um loop é executado para ler e processar cada registro até chegar ao final do arquivo.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.