COBOL - Verbos de manipulação de arquivos
Verbos de manipulação de arquivos são usados para executar várias operações de arquivo em PROCEDURE DIVISION. Os termos de manipulação de arquivos são os seguintes. Processar um arquivo significa fazer todas as operações de arquivo, como ler, escrever, abrir, fechar, etc.
A seguir está a lista de verbos de manipulação de arquivos, ou podemos dizer orações de processamento de arquivos:
- OPEN -Inicia o processamento de arquivos.
- READ - Lê um registro do arquivo.
- WRITE - Cria um registro no arquivo.
- REWRITE - Atualiza um registro no arquivo.
- DELETE - Excluir um registro no arquivo.
- START - Posicionamento dentro de um arquivo indexado ou relativo.
- CLOSE - Libera a conexão entre o arquivo e seu programa.
- READ NEXT - Lê o próximo registro no arquivo.
- READ PREV - Lê o registro anterior no arquivo.
OPEN:Antes de começar a trabalhar com arquivos, primeiro você precisa abrir o arquivo. Abrir é a primeira operação de arquivo que precisa ser executada antes de executar outras tarefas. Se a abertura for bem-sucedida, somente podemos realizar outras operações de arquivo como ler, escrever, fechar, etc. Somente após a abertura de um arquivo, as variáveis na estrutura do arquivo ficam disponíveis para processamento.
Nenhum dado é transferido para o buffer de registro ao abrir um arquivo; ele simplesmente fornece acesso.
de, o ponteiro do próximo registro é posicionado no último registro do arquivo.
Não podemos usar o modo de extensão no caso de arquivos aleatórios e dinâmicos.
I-O - Este modo é o modo de entrada e saída. Este modo lê e reescreve (atualiza) os registros de um arquivo
O arquivo pode ser aberto em 4 modos:
- INPUT - Este modo é usado apenas para arquivos existentes. Para ler o arquivo, precisamos usar este modo. Não podemos realizar outras operações no arquivo através deste modo. Quando um arquivo é aberto para INPUT, o próximo ponteiro de registro aponta para o arquivo no início do arquivo.
- OUTPUT - O modo de saída é usado para gravar os registros em arquivos. Em um arquivo sequencial do registro já existe, então o arquivo será sobrescrito. Mas no caso de arquivo indexado e arquivo relativo, isso não acontecerá.
- EXTEND - Este modo anexa os registros em um arquivo sequencial. Neste modo, o registro será inserido ao final. Quando o arquivo é aberto no modo Estender, o ponteiro do próximo registro é posicionado no último registro do arquivo.
Syntax:
Leia:
Uma vez que o arquivo tenha sido aberto no modo INPUT ou I-O, um registro por vez pode ser lido usando o verbo READ. Este verbo copia uma ocorrência ou instância de registro do arquivo e a coloca no buffer de registro definido usando FD, e então podemos acessá-lo.
=-Syntax: A seguir está a sintaxe do verbo de leitura quando o modo de acesso ao arquivo é sequencial.
READ FILE-NAME [NEXT/PREVIOUS] RECORD [INTO identifier1]
[AT END {imperative statement}]
[NOT AT END {imperative statement}]
[END-READ]
|
A seguir estão os parâmetros definidos na sintaxe acima:
- PRÓXIMO REGISTRO This is optional and is used for sequential reading of an indexed sequential file.
- EM: Esta cláusula também é opcional.
- NO FINAL: Essa condição se torna verdadeira quando o final do arquivo é atingido.
A seguir está a sintaxe do verbo de leitura quando o modo de acesso ao arquivo é aleatório:
READ FILE-NAME RECORD [INTO identifier1][KEY IS key-1]
[INVALID KEY {imperative statement}]
[NOT INVALID KEY {imperative statement}]
[AT END {imperative statement}]
[NOT AT END {imperative statement}]
[END-READ]
|
Exemplo: Vá para a página de exemplo, clique aqui
Escreva:
Este verbo é usado para gravar o conteúdo em um arquivo. Para inserir dados em um arquivo, devemos mover os dados para o buffer de registro (declarado na entrada FD) e depois gravar o conteúdo do buffer de registro no arquivo.
A instrução Write é usada para gravar registros diretamente das variáveis de armazenamento de trabalho por FROM (uma cláusula opcional).
A operação de gravação no arquivo pode ser feita de duas maneiras com base no modo de abertura do arquivo:
- O modo de acesso será seqüencial se o arquivo for aberto no modo SAÍDA. A partir do primeiro registro, os registros serão escritos. Se, antes de abrir em modo SAÍDA, o arquivo tiver alguns dados que podem ser atualizados e começar a escrever desde o início.
- Se o arquivo for aberto no modo EXTEND, a partir do último registro, os registros serão adicionados ao arquivo.
Resumindo, podemos dizer que se o arquivo for aberto no modo OUTPUT, a operação de escrita sobrescreverá o arquivo existente. Se o arquivo for aberto no modo EXTEND e o verbo de gravação adicionar o registro ao arquivo existente.
Syntax:
Segue a sintaxe para escrever um registro quando a organização do arquivo é sequencial:
WRITE record-buffer [FROM ws-file-structure]
END-WRITE. |
E a seguir está a sintaxe para escrever um registro quando a organização do arquivo é indexada ou relativa:
WRITE record-buffer [FROM ws-file-structure]
INVALID KEY DISPLAY 'Invalid Key'
NOT INVALID KEY DISPLAY 'Record Inserted'
END-WRITE. |
Exemplo: Vá para a página de exemplo, clique aqui
REESCREVER:
O verbo de reescrita atualiza os registros, mas o arquivo deve ser aberto no modo I-O para realizar a operação de reescrita. Podemos realizar a operação de reescrita somente após uma operação de leitura bem-sucedida.
O verbo reescrever substitui o último registro lido. Para isso, precisamos ler o registro usando o verbo READ, depois alterar o conteúdo do registro e então realizar a operação REWRITE para atualizar o registro.
Syntax:
Segue a sintaxe para escrever um registro quando a organização do arquivo é sequencial:
REWRITE record-buffer [FROM ws-file-structure]
END-REWRITE.
|
A seguir está a sintaxe para escrever um registro quando a organização do arquivo é indexada ou relativa:
REWRITE record-buffer [FROM ws-file-structure]
INVALID KEY DISPLAY 'Invalid Key'
NOT INVALID KEY DISPLAY 'Record Updated'
END-REWRITE. |
Exemplo: Vá para a página de exemplo, clique aqui
EXCLUIR:
O verbo de exclusão é usado para excluir o registro, que é lido na última leitura do arquivo. Podemos usar o verbo Delete apenas em arquivos indexados e relativos. E o arquivo deve ser aberto no modo I-O.
A exclusão específica de registros em arquivos sequenciais não é possível.
No caso de modo de acesso sequencial, o último registro lido pela instrução Read será excluído. E você precisa definir a chave de registro no modo de acesso aleatório para realizar o processo de exclusão.
Syntax:
DELETE file-name RECORD
INVALID KEY DISPLAY 'Invalid Key'
NOT INVALID KEY DISPLAY 'Record Deleted'
END-DELETE.
|
Exemplo: Vá para a página de exemplo, clique aqui
COMEÇAR:
Só podemos executar a operação inicial em arquivos indexados e relativos. O verbo inicial é usado para colocar o ponteiro do arquivo em um registro específico. Este modo de acesso deve ser sequencial ou dinâmico. O arquivo deve ser aberto no modo de entrada I-O. O início não é usado para recuperar nenhum registro e apenas define o ponteiro para a próxima leitura para ler o registro.
Syntax:
A seguir está a sintaxe usada para colocar o ponteiro em um registro específico:
START file-name KEY IS [=, >, <, NOT, <= or >=] rec-key
INVALID KEY DISPLAY 'Invalid Key'
NOT INVALID KEY DISPLAY 'File Pointer Updated'
END-START.
|
PERTO:
Este verbo é usado para fechar um arquivo explicitamente. Ao fechar um arquivo, as variáveis na estrutura do arquivo não estarão disponíveis para processamento. E a conexão entre o programa e o arquivo é perdida.
Syntax: