Criar e ler arquivos de texto no Matlab
Neste tutorial prático e direto, vou mostrar como é simples abrir, criar e ler arquivos de texto no Matlab.
Criar um novo arquivo
Criar um novo arquivo de texto é uma tarefa descomplicada: use a função fopen().
Insira o nome do arquivo de texto e o modo de acesso de escrita "w" (write) entre os parênteses, conforme este exemplo:
>> MeuArquivo=fopen("test2.txt", "w");
Utilize a variável MeuArquivo como um atalho no script, evitando a repetição do nome do arquivo a cada uso.
Prossigamos escrevendo dois registros no arquivo com a função fprintf().
>> fprintf(MeuArquivo, "1 registro \n");
>> fprintf(MeuArquivo, "2 registro \n");
Dica rápida: O uso do símbolo \n (nova linha) ao final de cada registro instrui o Matlab a começar uma nova linha, formando um novo registro. Sem o \n, as instruções seguintes de fprint() ou fput() continuariam no mesmo registro.
Finalizada a escrita, é essencial fechar o arquivo com a função fclose().
>> fclose(MeuArquivo);
Lendo um arquivo
Ler o conteúdo de um arquivo de texto no Matlab é uma tarefa fácil. Utilize a função fopen(), indicando o nome do arquivo e o atributo "r" (read) entre os parênteses:
>> MeuArquivo=fopen("test2.txt", "r");
A variável MeuArquivo facilita a execução de operações no arquivo, podendo ser nomeada conforme sua preferência.
Para ler um registro do arquivo, aplique a função fgetl().
>> fgetl(MeuArquivo)
Essa função acessa o conteúdo do primeiro registro.
ans = 1 registro
Para ler o segundo registro, repita o processo com a função fgetl().
>> fgetl(MeuArquivo)
Agora, a função acessa o segundo registro, visto que o primeiro já foi processado.
ans = 2 registro
Ao atingir o fim do arquivo, a função fgetl() retorna -1.
Por exemplo, ao executar fgetl() pela terceira vez,
>> fgetl(MeuArquivo)
o retorno será -1, pois o arquivo contém apenas dois registros, e ambos já foram lidos.
ans = -1
Após concluir as leituras, lembre-se de fechar o arquivo com a função fclose().
>> fclose(MeuArquivo);
Ler um arquivo com um loop
Para ler um arquivo inteiro do início ao fim, a melhor abordagem é usar uma estrutura de loop.
Assim, você evita a necessidade de usar repetidamente a função fgetl() para ler registros individuais.
MeuArquivo=fopen("test4.txt", "r");
eof=0;
while eof==0
rec =fgetl(MeuArquivo)
if (rec==-1) eof=1 ; endif
end
fclose(MeuArquivo)
Adicionar registros a um arquivo existente
Para adicionar mais registros a um arquivo já existente, sem excluir o conteúdo atual, é simples: abra-o no modo de anexação.
Por exemplo, para abrir o arquivo "test2.txt" no modo 'a' (append) com a função fopen():
>> MeuArquivo=fopen("test2.txt", "a");
O arquivo já contém dois registros:
1 registro
2 registro
Agora, adicione um novo registro com a função fprintf() ou fputs().
>> fprintf(MeuArquivo, "3 registro \n");
Dica: Para incluir mais registros, continue utilizando a função fprint(), seguindo o exemplo acima.
Concluída a adição de registros, não esqueça de fechar o arquivo com a função fclose().
>> fclose(MeuArquivo);
Seu arquivo agora possui três registros.
1 registro
2 registro
3 registro
Excelente! O Matlab adicionou um novo registro sem sobrepor nenhum dos registros existentes no arquivo.
Modos de acesso ao arquivo
Existem vários modos de acesso ao arquivo que podem ser muito úteis, a depender da sua necessidade:
r = abre o arquivo para leitura
w = cria um novo arquivo para escrita
a = anexa registros a um arquivo existente, mantendo o conteúdo atual
r+ = abre um arquivo para leitura e escrita
w+ = cria um novo arquivo para leitura e escrita
a+ = abre um arquivo para leitura e escrita, adicionando no final do arquivo
Com estas informações, você está pronto para começar a ler ou escrever arquivos de texto usando o Matlab. Sucesso na programação!