A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algoritmos e Estruturas de Dados I

Apresentações semelhantes


Apresentação em tema: "Algoritmos e Estruturas de Dados I"— Transcrição da apresentação:

1 Algoritmos e Estruturas de Dados I
Arquivos Binários Prof. Fabio Henrique N. Abe

2 Arquivos Binários Arquivos de texto são mais simples de serem manipulados e permitem fácil acesso ao seu conteúdo. Porém, apresentam as seguintes desvantagens: Os campos devem estar separados por algum caracter; O acesso aos elementos é sequencial; Caracteres numéricos são armazenados como ASCII, ocupando mais bytes que o necessário.

3 Arquivos Binários Variáveis int ou float têm tamanho fixo na memória. Por exemplo um int ocupa 4 bytes; Representações em texto precisam de um número variável de dígitos, logo possuem tamanho variável; Armazenar dados em arquivos de forma análoga à memória permite: Reduzir o tamanho do arquivo; Realizar busca não sequencial.

4 Arquivos Binários Arquivos binários tem seu conteúdo armazenado em formato binário e, por isso, ocupam menos bytes que os arquivos de textos. Além disso, não precisam de separadores entre os campos nem entre os registros; Para utilizarmos arquivos binários em C, da mesma forma que os arquivos de texto, precisamos da biblioteca stdlib.h Normalmente os arquivos binários são identificados pela extensão .dat

5 Abrindo Arquivos Binários
FILE * fopen (char *nome, char *modo) Parâmetros: nome: String que contém o caminho (completo ou relativo) e o nome do arquivo que será aberto; modo: String que contém o modo de abertura do arquivo. Retorno: Um ponteiro para a estrutura de arquivos

6 Abrindo Arquivos Binários

7 Fechando Arquivos Binários
int * fclose (FILE *arq) Parâmetros: arq: Apontador para a estrutura de arquivo; Retorno: 1: Se o arquivo foi fechado corretamente; 0: Caso contrário.

8 Escrevendo em um Arquivo Binário
int * fwrite (void *pt, int tam, int num, FILE *arq) Parâmetros: pt: Um apontador para a variável que contém os dados; tam: Tamanho de cada dado a ser escrito (pode ser um registro); num: Número de elementos (ou registros) que serão escritos; arq: Apontador para a estrutura de arquivo; Retorno: Um número inteiro que indica a quantidade de itens escritos.

9 Escrevendo em um Arquivo Binário

10 Lendo de um Arquivo Binário
int * fread (void *pt, int tam, int num, FILE *arq) Parâmetros: pt: Um apontador para a variável que contém os dados; tam: Tamanho de cada dado a ser lido (pode ser um registro); num: Número de elementos (ou registros) que serão lidos; arq: Apontador para a estrutura de arquivo; Retorno: Um número inteiro que indica a quantidade de itens lidos ou EOF (0) quando atinge o final do arquivo.

11 Lendo de um Arquivo Binário

12 Identificando o Final de um Arquivo Binário
int feof (FILE *arq) Parâmetros: arq: Apontador para a estrutura de arquivo; Retorno: 1: Se chegou ao final do arquivo; 0: Caso contrário.

13 Identificando o Final de um Arquivo Binário

14 Lendo e Escrevendo Tanto o fread quanto o fwrite retornam um número inteiro que representa o número de bytes lidos/escritos pelos comandos. Se o retorno for 0, significa que nenhum byte foi escrito/lido, ou porque o arquivo não pôde ser acessado, ou porque o disco encontra-se cheio, ou porque foi atingido o final do arquivo (no caso da leitura). Como ler registros não sequenciais? Movimentando o cursor de leitura/escrita para o local exato do registro.

15 Movendo o Cursor de um Arquivo Binário
int fseek (FILE *arq, int deslocamento, int modo) Parâmetros: arq: Apontador para a estrutura de arquivo; deslocamento: Quantidade de bytes a ser deslocada para o posicionamento do cursor. Pode ser um valor negativo. modo: Modo de deslocamento do cursor, sendo: SEEK_CUR: A partir da posição corrente; SEEK_SET: A partir do início do arquivo; SEEK_END: A partir do final do arquivo (usado para deslocamentos de trás para frente). Retorno: 0: Caso o deslocamento tenha sido possível. Outro valor, caso contrário.

16 Movendo o Cursor de um Arquivo Binário

17 Exercícios Crie um registro contendo: Código do Cliente
Nome do Cliente Idade Utilizando o registro criado, faça um programa que receba a entrada dos dados e armazene-os em um arquivo binário O programa deve ter as opções de buscar por um registro, alterar o registro e acrescentar novos registros. O programa também precisa ter opções de listar todos os registros criados.


Carregar ppt "Algoritmos e Estruturas de Dados I"

Apresentações semelhantes


Anúncios Google