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.