Manipulação de Arquivos Técnicas de Programação
Agenda do Dia Noções de Manipulação de Arquivos Ponteiros para Arquivos Abrindo Arquivos Fechando Arquivos Exercícios Lendo e Escrevendo em Arquivos
Noções de Manipulação de Arquivos Até nossa última aula, nossos programas armazenavam informações na memória principal. http://moduloalunointegrado.blogspot.com.br/
Noções de Manipulação de Arquivos Agora será possível guardar informações em memória secundária (permanente). Vamos conseguir recuperá-las posteriormente acessando-as à partir do disco rígido. http://bytenews.blogspot.com.br/2009/05/virus-de-computador.html http://www.reidaverdade.net/como-recuperar-dados-hd.html
Noções de Manipulação de Arquivos stream: abstração usada para permitir uma interface consistente e independente do dispositivo real acessado, com um arquivo específico para realizar a operação de abertura. http://blogdokayser.blogspot.com.br/2010/05/abrindo-os-arquivos-da-ditadura.html http://coisadeale.blogspot.com.br/2009/11/arquivos-o-que-fazer-com-eles.html
Ponteiro para Arquivos Um ponteiro de arquivo, também conhecido como descritor de arquivo, é um ponteiro para informações, como: nome; posição atual do arquivo; tamanho; etc... Em C, é uma estrutura de dados denominada FILE: FILE *fp;
Ponteiro para Arquivos Isto quer dizer que temos: arquivo físico: armazena informações sobre o arquivo em memória secundária; arquivo lógico: armazenado em variáveis de memória principal, definidas pelo programador. http://www.ebah.com.br/content/abaaaeqdkai/manipulacao-arquivos
Abrindo Arquivos Para abrir arquivos, deve-se usar a função fopen(). Ela abre uma stream que usa e associa um arquivo a ela. Sintaxe: FILE *fopen(char *nome-do-arquivo, char *modo); Exemplo: FILE *fp; fp = fopen( cadastro.txt, w ); Modo de abertura do arquivo Ponteiro para o arquivo (stream) Arquivo físico
Abrindo Arquivos Na prática, isto quer dizer que: http://cae.ucb.br/conteudo/programar/labor1/new_arquivo.html
Abrindo Arquivos Um arquivo pode ser aberto como arquivo texto ou binário. A diferença é que no arquivo texto, sequências de retorno de carro/alimentação de linha são codificadas para caracteres de nova linha na entrada e na saída. Isto quer dizer que nem sempre a tradução entre a representação do caractere no fluxo de texto e no sistema de arquivo é um para um.
Abrindo Arquivos Modos de abertura para um arquivo texto: r: abre um arquivo texto para leitura; w: cria um arquivo texto para escrita; a: anexa a um arquivo texto;
Abrindo Arquivos
Abrindo Arquivos No arquivo binário (bytes) tais traduções não acontecem, ou seja, existe a correspondência de um para um entre os dados do dispositivo (computador) e os que estão no fluxo (texto).
Abrindo Arquivos Modos de abertura para um arquivo binário: rb: abre um arquivo binário para leitura; wb: cria um arquivo binário para escrita; ab: anexa a um arquivo binário.
Abrindo Arquivos
Fechando Arquivos O fechamento de arquivos é uma operação importante, pois grava os dados que ainda permanecem no buffer de disco do arquivo, fechando o arquivo em nível de sistema operacional. Sintaxe: ou int fclose(file *fp); fclose(fp);
Fechando Arquivos Esta função retorna o valor zero, por padrão, caso o operação de fechamento tenha ocorrido com sucesso. Se outro número for retornado, indica um erro. O uso de fclose() é importante pois garante que o arquivo será fechado corretamente, evitando a perda de dados ou o corrompimento do arquivo.
Fechando Arquivos Ao usarmos a função fclose(), garantimos que o arquivo físico está fechado e os dados seguros. http://www.ebah.com.br/content/abaaaeqdkai/manipulacao-arquivos
Exercícios 1) Descreva a diferença entre stream e arquivo. 2) Explique o funcionamento das funções fopen() e fclose().
Lendo e Escrevendo em Arquivos fprintf() Se comporta como printf(); fscanf() Se comporta como scanf(); Sintaxes: int fprintf(file *fp, const char *control_string,...); int fscanf(file *fp, const char *control_string,...);
Exercício 1) Escreva um programa que leia vários números inteiros e grave-os num arquivo texto. O programa termina a leitura dos números quando o número zero for digitado. Na sequência o programa imprime na tela os números gravados no arquivo.
Passo 1: Exercício (solução)
Passo 2: Exercício (solução)
Exercício (solução) Passo 3: Vai imprimir no arquivo!
Passo 4: Exercício (solução)
Passo 5: Exercício (solução)
Exercício (solução) Passo 6: Vai escanear do arquivo!
Passo 7: Exercício (solução)
Dúvidas?