Ler e escrever um arquivo de texto usando o Octave
Neste tutorial, abordaremos a leitura e a escrita de arquivos de texto utilizando o Octave.
Escrever um novo arquivo
Para criar um novo arquivo, empregue a função fopen(), especificando o nome do arquivo e o modo de acesso "w". Veja o exemplo:
>> MyFile=fopen("test2.txt", "w");
A seguir, insira dois registros no arquivo por meio da função fprintf()
>> fprintf(MyFile, "1 record \n");
>> fprintf(MyFile, "2 record \n");
Como alternativa, é possível também utilizar a função fputs()
>> fputs(MyFile, "1 record \n");
>> fputs(MyFile, "2 record \n");
O resultado, em ambos os casos, é idêntico.
Nota. Ao final de cada string, inclua o símbolo de nova linha \n para iniciar um novo registro. Caso contrário, o próximo comando printf() prosseguirá no mesmo registro.
Ao concluir a inserção dos registros, encerre o arquivo com a função fclose()
>> fclose(MyFile);
Ler um arquivo
Para a leitura de um arquivo de texto, recorra à função fopen(), indicando o nome do arquivo e o modo de leitura "r".
Associe o arquivo a uma variável, como MyFile
>> MyFile=fopen("test2.txt", "r");
É importante lembrar que este arquivo contém dois registros.
Para acessar um registro do arquivo, utilize o comando fgetl()
>> fgetl(MyFile)
Este comando exibe o conteúdo do primeiro registro
ans = 1 record
Para acessar o segundo registro, repita o comando fgetl()
>> fgetl(MyFile)
O comando apresentará o conteúdo do último registro
ans = 2 record
Caso execute o comando fgetl() mais uma vez, o retorno será -1, indicando o final do arquivo.
>> fgetl(MyFile)
ans = -1
Finalize a operação fechando o arquivo.
>> fclose(MyFile);
Ler o arquivo com um loop
É viável ler o arquivo utilizando uma estrutura de repetição, evitando a necessidade de repetir o comando fgetl()
MyFile=fopen("test4.txt", "r");
eof=0;
while eof==0
rec =fgetl(MyFile)
if (rec==-1) eof=1; endif
end
fclose(MyFile)
Adicionar registros a um arquivo já existente
Para adicionar registros a um arquivo pré-existente, abra-o no modo de anexação com a função fopen() e o modo 'a'.
Por exemplo, ao abrir o arquivo "test2.txt", que já contém dois registros.
>> MyFile=fopen("test2.txt", "a");
Posteriormente, adicione um novo registro utilizando as funções fprintf() ou fputs()
>> fprintf(MyFile, "3 record \n");
Ao finalizar a adição, encerre o arquivo
>> fclose(MyFile);
O arquivo agora possui três registros.
Modos de acesso ao arquivo
Existem diversos modos de acesso, além de leitura ('r') e escrita ('w'):
'r' = leitura
'w' = escrita (cria um novo arquivo)
'a' = anexação (adiciona ao final de um arquivo existente)
'r+' = leitura e escrita
'w+' = escrita e leitura (cria um novo arquivo)
'a+' = leitura e anexação (adiciona ao final)
Nesta aula, você aprendeu a manipular arquivos de texto no Octave de forma eficiente.