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

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

Prof: Erivelto Tschoeke, Msc. –

Apresentações semelhantes


Apresentação em tema: "Prof: Erivelto Tschoeke, Msc. –"— Transcrição da apresentação:

1 Prof: Erivelto Tschoeke, Msc. – erivelto@sbs.udesc.br
UDESC – Centro de Ensino do Planalto Norte Arquivos binários

2 Lendo e Escrevendo Arquivos Binários
As funções fread e fwrite são empregadas para leitura e escrita de dados em modo binário. Os protótipos das funções são: size_t fread (void *ptr, size_t size, size_t nmemb, FILE *parq); size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *parq); A função fread lê nmemb objetos, cada um com size bytes de comprimento do fluxo apontado por stream e os coloca na localização apontada por ptr. fread retorna o número de itens que foram lidos com sucesso. Caso ocorra um erro, ou o fim do arquivo foi atingido o valor de retorno é menor do que nmemb ou zero. Esta função não distingue entre um fim de arquivo e erro, portanto é aconselhavel o uso de feof() ou ferror() para determinar que erro ocorreu.

3 Escrevendo arquivos binários
A função fwrite escreve nmemb elementos de dados, cada um com size bytes de comprimento, para o fluxo apontado por stream obtendo-os da localização apontada por ptr. fwrite retorna o número de itens que foram lidos com sucesso. Caso ocorra um erro, ou o fim do arquivo foi atingido o valor de retorno é menor do que nmemb ou zero.

4 Primeiros programas: O programa c10leb.c mostra como podemos escrever e ler dados de diferentes tipos em arquivos. Como um dos parâmetros da função é o número de bytes do dado a ser lido, é recomendado o uso de sizeof.

5 Arquivos binários: Uma das principais aplicações destas funções é a leitura e escrita de estruturas criadas pelos usuários. A gravação em binário da estrutura permite que o programador ao escrever ou ler do arquivo se preocupe somente com a estrutura como um todo e não com cada elemento que a compõe.

6 Mais programas. O programa c10bin.c mostrado abaixo ilustra como podemos escrever e ler estruturas.

7 Entrada e Saída Formatada
As funções fprintf() e fscanf() são equivalentes as funções printf() e scanf() usadas até agora, sendo a única modificação o fato de que elas trabalham com fluxos de dados (arquivos). Os protótipos das duas funções são os seguintes: int fprintf(FILE *parq, const char *formatacao, ...); int fscanf(FILE *parq, const char *formatacao, ...); onde parq é um ponteiro de arquivo recebido após uma chamada a fopen().

8 Lembrete: Embora estas duas funções, por sua semelhança com printf() e scanf(), sejam maneiras convenientes de escrecer e ler dados de arquivos, elas têm a desvantagem de serem mais lentas do que uso de arquivos binários. A perda de tempo é devido ao fato dos dados serem gravados em ASCII, o que obriga a uma conversão dos dados a cada operação realizada.

9 Lembrete: Em alguns casos o fato dos dados serem gravados em ASCII pode ser considerado um vantagem que se sobrepõe a desvantagem da redução de velocidade. Dados gravados em ASCII podem ser facilmente verificados pelos usuários, o que não acontece com dados em binário.

10 Saida formatada Arquivos formatados tem uma vantagem que é a interpretação por vários tipos de aplicativos que fazem a importação de arquivos de texto. Normalmente o padrão destes arquivos são: xxx;xxxxxxx;xxxxxx;x;xxxxxx; O exemplo c10sp.c, mostra um exemplo de uso destas funções para ler e escrever vários tipos de dados em um arquivo.

11 Lista de exercícios Fazer os programas pedidos na lista de exercícios;
Equipes de 3 alunos; Entrega próxima aula (07/10/2009); Início hoje!.


Carregar ppt "Prof: Erivelto Tschoeke, Msc. –"

Apresentações semelhantes


Anúncios Google