Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação de Computadores Matlab Arquivo em detalhes Prof. Dr. Erivelton Geraldo Nepomuceno Depto. Engenharia Elétrica Sala 4.23 EL – Prédio do DEPEL http://www.ufsj.edu.br/nepomuceno nepomuceno@ufsj.edu.br 1/22 Usando save como função Usando load como função Arquivos binários ■ Conjunto de dados armazenados em HD como seqüências de bits (0’s e 1’s) ■ Todo arquivo do computador é, no final das contas, binário ■ Saber como trabalhar em nível binário garante acesso a qualquer arquivo ■ Comandos load e save só operam em arquivos no formato matlab (.mat) ■ Conhecer o formato dos dados no arquivo é de responsabilidade do programador ■ Duas formas de tratar o conteúdo do arquivo: ◻ Numérico ◻ Texto No caso de texto: ASCII American Standard Code for Information Interchange; Código Padrão Americano para o Intercâmbio de Informação Manipulação de arquivos binários ■ fopen: abertura de arquivos ■ fclose: fechamento de arquivos ■ fscanf: lê texto no arquivo ■ fprintf: escreve texto no arquivo ■ fread: lê dados numéricos ■ fwrite: escreve dados numéricos ■ fseek: muda a posição do indicador do arquivo ■ ftell: diz em que posição do arquivo o indicador está ■ feof: indica final de arquivo (end of file) fopen fid = fopen(nomedoarquivo, permissao) ■ Abre ou cria um arquivo VARIÁVEL QUE CONTÉM O IDENTIFICADOR DO ARQUIVO fclose fclose(fid) ■ Fecha o arquivo ■ Deve sempre ser usado ao final do programa que abriu o arquivo VARIÁVEL QUE CONTÉM O IDENTIFICADOR DO ARQUIVO fprintf ■ Escreve um texto no arquivo ■ É a mesma função de sempre ■ Agora, há um novo parâmetro, que identifica o arquivo a ser escrito ■ count: número de dados escritos com sucesso ■ fid: identificador do arquivo ■ format: texto formatado ■ A: dados count = fprintf(fid, format, A) fscanf ■ Lê um texto do arquivo ■ A: variável que vai conter resultado lido ■ fid: identificador do arquivo ■ format: texto formatado ■ size: quantidade de dados a ser lido A = fscanf(fid, format) A = fscanf(fid, format, size) Um exemplo Arquivo aberto no notepad Na seqüência do exemplo fread A = fread(fid) A = fread(fid, count) A = fread(fid, count, precision) ■ Lê dados no formato numérico ■ fid: identificador do arquivo ■ count: quantidade a ser lida ■ precision: precisão do dado (padrão uint8) Exemplo: A = fread(fid, 1, ‘float’); Count: N (fixo) Inf (todo arquivo) [m, n] ou [m, inf] →preenche uma matriz Precisão ■ Número de bits/bytes usados para representar um número digitalmente ■ Linguagens como C ou Fortran criam variáveis conforme sua precisão ■ Declarações em C seguem a sintaxe: int i = 0; double x = 2.8; fwrite count = fread(fid, A) count = fread(fid, A, precision) ■ Escreve dados no formato numérico ■ fid: identificador do arquivo ■ A: dado (matriz) a ser escrito ■ precision: precisão do dado (padrão uint8) ■ count: indica quantos dados foram escritos com sucesso Exemplo: count = fwrite(fid, 234.87, ‘float’); Um arquivo binário numérico no notepad fseek ■ Movimenta o indicador de posição no arquivo ■ offset: a quantidade de bytes de deslocamento ■ origin: ponto a partir do qual realizará o deslocamento: ◻ ‘bof’: beggining of file (início do arquivo) ◻ ‘cof’: current position of file (posição atual) ◻ ‘eof’: end of file (fim do arquivo) status = fseek(fid, offset, origin) Um exemplo mais completo: Montar arquivo com número e texto Na seqüência: ler o arquivo Ainda no fluxo: corrigir uma entrada Exercício ■ Cria e preenche um arquivo com nome de funcionários e seus salários ■ Mostra o arquivo na tela ■ Dá 10% de aumento para todos no mesmo arquivo
Compartilhar