Aula Prática 12 Operações com Arquivos Monitoria 2013.1.

Slides:



Advertisements
Apresentações semelhantes
TRATAMENTO DE ARQUIVOS EM C
Advertisements

Prof.: Sergio Pacheco Linguagem PHP Prof.: Sergio Pacheco 1.
© Copyright 2008 Algoritmos e Estruturas de Dados IF672ec - Algoritmos e Estruturas de Dados CIn - UFPE { alp4, dnq, dwcs, fmm, jdf2, lfpd, mraga, psbof,
Programação para Engenharia I
Prof. Luis Otavio Alvares
Modificadores de tipos e Arquivos
Prof. Flavio Marcello Strelow
Arquivos Prof: Erivelto Tschoeke, Msc. –
Prof: Erivelto Tschoeke, Msc. –
Linguagem de Programação 1
Prof.: Sergio Pacheco Linguagem PHP Prof.: Sergio Pacheco 1.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Algoritmos e Estruturas de Dados II
Linguagem C Strings.
Armazenamento de Dados em Arquivos
Linguagem C Strings.
Armazenamento de Dados em Arquivos
Escola Secundária c/ 3º CEB da Batalha
Tratamento de Ficheiros
Revisão da Linguagem C.
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula 4 Prof. Naércio Filho Técnico em Informática
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
PROGRAMAÇÃO ESTRUTURADA II
Linguagem de Programação II Parte IX
Ordenação e Pesquisa de Dados Marco Antonio Montebello Júnior
Manipulação de Arquivos em C
Arquivos Continuação.
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Streams –input e output
DAVID ANDERSON CARDOSO DANTAS
Curso de C/C++ Aula 4 Instrutor: Luiz Felipe Sotero
C APÍTULO II Armazenando e recuperando dados. A RMAZENANDO E RECUPERANDO DADOS Agenda Salvar dados Abrir um arquivo Criar e gravar Fechar Ler Bloquear.
Aula 13 - Armazenamento de Dados em Arquivos
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Arquivo.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
ARQUIVOS.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Tratamento de ficheiros Abrir e fechar um ficheiro.
Capítulo V – Comandos de Entrada e Saída 5.1 – Equipamentos de entrada e saída 5.2 – Saída no vídeo-texto 5.3 – Entrada pelo teclado 5.4 – Entrada e saída.
Aula Prática 11 Operações com Arquivos Monitoria
Algoritmos e Estruturas de Dados
Operações com Arquivos Monitoria A estrutura FILE  É como um tipo de dado, mas não é um tipo propriamente dito  Definido no arquivo cabeçalho.
Aula Prática 11 Operações com Arquivos Monitoria
Manipulando arquivos texto com C
Programação de Computadores I – Arquivos
José Francisco PHP & MySQL. Os slides originais são parte do material de cursos anteriores do curso de PHP, ministrados por Sérgio Clemente.
Rotinas do BIOS e DOS Serviços de vídeo (INT 10H)
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Salvando em Arquivos. Arquivos Um arquivo pode estar associado a qualquer dispositivo de entrada e saída, como por exemplo: teclado, video, impressora,
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
1 Programação em C Aula Considere que um banco armazena em arquivo as seguintes informações de seus clientes: número da conta (int), nome do cliente.
Felipe Nunes Flores – Programa de Educação Tutorial.
Aula Prática 6 Vetores e Matrizes Monitoria
Algoritmo e Estrutura de Dados I Aulas 15 – Linguagem C Alocação Dinâmica de Memória Márcia Marra
Aula de Entrada / Saída Monitores: Alessandro Luna Leonardo Ribeiro Mardoqueu Vieira Mozart Araújo Filho.
Linguagem de Programação
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Programação II Arquivos Autoria: Ernani Santos Modificação: Clebson Oliveira Adaptação: Claudia Boeres.
Fundamentos de Programação 1 Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Seqüências ou de Texto ”.
Fundamentos de Programação 1 Slides 19 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Binários”.
Arquivos textos (text)
Felipe Nunes Flores – Programa de Educação Tutorial.
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
Jean Carlo Mendes ** Slides baseados no material do prof. Dr Guilherme Tavares de Assis (UFOP)
FUNÇÕES Dilvan Moreira (baseado em material de Z. Liang)
Fundamentos de Programação 1 Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Seqüências ou de Texto ”. 1.
Algoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I
DHD – Desenvolvimento em Hardware
Transcrição da apresentação:

Aula Prática 12 Operações com Arquivos Monitoria

A estrutura FILE  É como um tipo de dado, mas não é um tipo propriamente dito  Definido no arquivo cabeçalho stdio.h da biblioteca  Declarar um ponteiro de arquivo  Exemplo:  FILE *fp;

Abrindo e Fechando Arquivos  FILE *fopen(char *nomeDoArquivo, char *modo);  Abre um arquivo e retorna um ponteiro para ele  Se algum erro ocorrer a constante NULL é retornada  Exemplo: ○ fp = fopen(“Arquivo.txt”, “r”);  É de fundamental importância verificar se o arquivo foi aberto corretamente.  int fclose(FILE *fp);  Fecha o arquivo passado como parâmetro  Retorna 0 se o arquivo foi fechado corretamente  Retorna a constante EOF se algum erro ocorreu  Exemplo: ○ fclose(fp);  É muito importante fechar todos os arquivos que o seu programa abriu, isto evita a perda dos dados armazenados no buffer.  Fechar um arquivo faz com que qualquer caractere que tenha permanecido no "buffer" associado ao fluxo de saída seja gravado.

Exit  Aborta a execução do programa.  Protótipo:  void exit (int codigo_de_retorno);  Contida no arquivo de cabeçalho stdlib.h.  Importante para erros com arquivos e alocação dinâmica.  Exemplo:  if(!fp) exit(1);

ModoSignificado "r"Abre um arquivo texto para leitura. O arquivo deve existir antes de ser aberto. "w" Abrir um arquivo texto para gravação. Se o arquivo não existir, ele será criado. Se já existir, o conteúdo anterior será destruído. "a" Abrir um arquivo texto para gravação. Os dados serão adicionados no fim do arquivo ("append"), se ele já existir, ou um novo arquivo será criado, no caso de arquivo não existente anteriormente. "rb" Abre um arquivo binário para leitura. Igual ao modo "r" anterior, só que o arquivo é binário. "wb" Cria um arquivo binário para escrita, como no modo "w" anterior, só que o arquivo é binário. "ab" Acrescenta dados binários no fim do arquivo, como no modo "a" anterior, só que o arquivo é binário. "r+" Abre um arquivo texto para leitura e gravação. O arquivo deve existir e pode ser modificado. "w+" Cria um arquivo texto para leitura e gravação. Se o arquivo existir, o conteúdo anterior será destruído. Se não existir, será criado. "a+" Abre um arquivo texto para gravação e leitura. Os dados serão adicionados no fim do arquivo se ele já existir, ou um novo arquivo será criado, no caso de arquivo não existente anteriormente. "r+b" Abre um arquivo binário para leitura e escrita. O mesmo que "r+" acima, só que o arquivo é binário. "w+b" Cria um arquivo binário para leitura e escrita. O mesmo que "w+" acima, só que o arquivo é binário. "a+b" Acrescenta dados ou cria uma arquivo binário para leitura e escrita. O mesmo que "a+" acima, só que o arquivo é binário

Modo texto x Modo binário CasosModo textoModo Binário Interpretação do caractere '\n' '\n' (1 byte)CR/LF (2 bytes) Interpretação do Caractere '\x1A'(Ctrl + Z) Sai do programa É um caractere qualquer Interpretação dos Números Cada dígito é interpretado como um caractere(char) Um número é interpretado como um número(int, float...)

Leitura e gravação em alto nível  Caractere a caractere  fgetc e fputc  Linha a linha  fgets e fputs  Forma formatada  fscanf e fprintf  Bloco de dados  fread e fwrite

Caractere a caractere  int fgetc(FILE *fp);  Lê um caractere de fp  Retorna EOF se houver erro  Exemplo: ○ fgetc(fp);  int fputc(int c, FILE *fp);  Escreve um caractere em fp  Retorna EOF se houver erro  Exemplo: ○ fputc(‘A’, fp);

Linha a linha  char *fgets(char *str, int tamanho, FILE *fp);  Lê no máximo tamanho caracteres de fp e guarda em str  Se a função encontrar ‘\n’ ou EOF ela para  Exemplo: ○ fgets(string, 80, fp);  char *fputs(char *str, FILE *fp);  Imprime uma string no arquivo  Exemplo: ○ fputs(string, fp);

Forma formatada  int fscanf(FILE *pf, char *str,...);  Similar a scanf() porém lê de um arquivo  Exemplo: ○ fscanf(fp, “%d %c”, &num, &ch);  int fprintf(FILE *pf, char *str,...);  Similar a printf() porém escreve em um arquivo  Exemplo: ○ fprintf(fp, “%d %c”, num, ch);

fread  int fread(void *buffer, int numBytes, int qtd, FILE *pf);  buffer é o local onde os dados lidos do arquivo serão guardados  numBytes é o tamanho da unidade a ser lida  qtd é o número máximo de unidades a serem lidas  pf é o arquivo do qual se deseja ler  O retorno é o número de unidades efetivamente lidas  Exemplo: FILE *pf = fopen(“meuArquivo”, “r”); int mat[12]; fread(mat, sizeof(int), 10, pf);

fwrite  int fwrite(void *buffer, int numBytes, int qtd, FILE *pf);  buffer é o local que contém os dados a serem gravados  numBytes é o tamanho da unidade a ser gravada  qtd é o número de unidades a serem gravadas  pf é o arquivos do no qual se deseja gravar os dados  O retorno é o número de unidades efetivamente gravadas  Exemplo: FILE *pf = fopen(“meuArquivo”, “w”); int mat[] = { 1, 2, 3, 4 }; fwrite(mat, sizeof(int), 4, pf);

ferror e perror  int ferror(FILE *fp);  Retorna zero se não houver erros na última operação realizada com um arquivo  Caso contrário retorna não-zero  perror (char *mensagem)  é usada em conjunto com ferror, e indica em que parte do programa ocorreu um erro. Recebe como argumento uma string.  Exemplo: ○ if(ferror(fp)) { perror("Erro na gravacao"); exit(1); }

fseek  int fseek(FILE *pf, long numBytes, int origem);  Move a posição corrente de leitura ou escrita em um arquivo  pf é o arquivo que se deseja percorrer  numBytes é o número de bytes a serem movidos  retorna 0 em caso de sucesso ou não-zero caso contrário.  origem é o ponto de partida(geralmente usa-se as macros abaixo): NomeValSignificado SEEK_SET 0Inicio do arq. SEEK_CUR 1Ponto corrente SEEK_END 2Fim do arquivo

rewind e remove  void rewind(FILE *fp);  Move o cursor para o inicio do arquivo  Exemplo: ○ rewind(fp);  int remove(char *Arquivo);  Apaga o arquivo que passamos o ponteiro.  Retorna zero se ocorreu sucesso  Não zero em caso de erro  Exemplo: ○ remove(“Arquivo.txt”);

Verificando fim de arquivo  int feof(FILE *fp);  Indica o fim de um arquivo  Retorna não-zero se o arquivo chegou ao fim e zero caso contrário  Outra maneira de verificar o término do arquivo é comparar um caractere lido com EOF.

Exercícios  1. Escreva um programa que leia do arquivo uma série de palavras e diga qual a maior e a menor, além da quantidade de dígitos de cada. (veja a quantidade de palavras até o fim do arquivo)  2. O Grupo responsável por um dicionário está precisando ordenar as palavras. Mas eles possuem um arquivo com as palavras fora de ordem e pediu para vocês criarem um programa que gere, a partir desse, um arquivo com as palavras ordenadas.  3. Um grupo de matemáticos precisam de um programa que leia sequências de operadores (A B C L) de um arquivo BINÁRIO para fazer a seguinte operação: ( ( (A + (B x C ) ) + L) mod 26 ) + ‘a’ sendo A,B,C inteiros e L um char. Salve o resultado num arquivo Binário, na forma de caracteres. Depois de tudo, salve em outra linha do arquivo o tamanho da string gerada.