Rexx - Arquivo I / O
Rexx fornece vários métodos ao trabalhar com E / S. Rexx fornece classes mais fáceis para fornecer as seguintes funcionalidades para arquivos.
- Lendo arquivos
- Gravando em arquivos
- Ver se um arquivo é um arquivo ou diretório
As funções disponíveis no Rexx para E / S de arquivo são baseadas na entrada de linha e na entrada de caracteres e veremos as funções disponíveis para ambos em detalhes.
Vamos explorar algumas das operações de arquivo que Rexx tem a oferecer. Para os fins desses exemplos, vamos supor que existe um arquivo chamadoNewFile.txt que contém as seguintes linhas de texto -
Example1
Example2
Example3
Este arquivo será usado para as operações de leitura e gravação nos exemplos a seguir. Aqui, discutiremos como ler o conteúdo de um arquivo de maneiras diferentes.
Ler o conteúdo de um arquivo, uma linha por vez
As operações gerais em arquivos são realizadas utilizando os métodos disponíveis na própria biblioteca Rexx. A leitura de arquivos é a mais simples de todas as operações no Rexx.
Vejamos a função usada para fazer isso.
linein
Este método retorna uma linha do arquivo de texto. O arquivo de texto é o nome do arquivo fornecido como parâmetro de entrada para a função.
Syntax -
linein(filename)
Parameter -
filename - Este é o nome do arquivo de onde a linha deve ser lida.
Return Value - Este método retorna uma linha do arquivo por vez.
Example -
/* Main program */
line_str = linein(Example.txt)
say line_str
O código acima é muito simples no fato de que o Example.txto nome do arquivo é fornecido para a função linein. Esta função então lê uma linha de texto e fornece o resultado para a variávelline_str.
Output - Quando executarmos o programa acima, obteremos o seguinte resultado.
Example1
Ler o conteúdo de um arquivo de uma só vez
No Rexx, a leitura de todo o conteúdo de um arquivo pode ser realizada com a ajuda da instrução while. O comando while lerá cada linha, uma por uma, até que o final do arquivo seja alcançado.
Um exemplo de como isso pode ser alcançado é mostrado abaixo.
/* Main program */
do while lines(Example.txt) > 0
line_str = linein(Example.txt)
say line_str
end
No programa acima, os seguintes itens precisam ser observados -
A função de linhas lê o Example.txt Arquivo.
A função while é usada para verificar se existem outras linhas no arquivo Example.txt.
Para cada linha lida do arquivo, o line_strvariável contém o valor da linha atual. Isso é então enviado ao console como saída.
Output - Quando executarmos o programa acima, obteremos o seguinte resultado.
Example1
Example2
Example3
Gravando Conteúdo em um Arquivo
Assim como a leitura de arquivos, o Rexx também tem a capacidade de gravar em arquivos. Vejamos a função que é usada para fazer isso.
lineout
Este método grava uma linha em um arquivo. O arquivo no qual a linha precisa ser gravada é fornecido como o parâmetro para a instrução lineout.
Syntax -
lineout(filename)
Parameter -
filename - Este é o nome do arquivo de onde a linha precisa ser gravada.
Return Value- Este método retorna o status da função lineout. O valor retornado é 0 se a linha foi escrita com sucesso, caso contrário, o valor 1 será retornado.
Example -
/* Main program */
out = lineout(Example.txt,"Example4")
Output - Sempre que o código acima for executado, a linha "Exemplo4" será gravada no arquivo Example.txt.