Prof. Luis Otavio Alvares

Slides:



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

Python: Entrada e Saída
Prof.: Sergio Pacheco Linguagem PHP Prof.: Sergio Pacheco 1.
Um programa em C Bibliotecas Variáveis globais
© Copyright 2008 Algoritmos e Estruturas de Dados IF672ec - Algoritmos e Estruturas de Dados CIn - UFPE { alp4, dnq, dwcs, fmm, jdf2, lfpd, mraga, psbof,
Ficheiros Sequenciais e aleatórios
Introdução à Computação - Jorge Macêdo
Introdução à Linguagem C
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.
LINGUAGEM ESTRUTURADA TURBO C
Universidade Federal do Espírito Santo Programação II Vetores Professora: Norminda Luiza.
Algoritmos e Estruturas de Dados II
Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:
Linguagem C Strings.
Armazenamento de Dados em Arquivos
Vetores, Matrizes e Funções
Estruturas de Dados Homogêneas Unidimensionais – Vetores e Strings
Linguagem C Strings.
Armazenamento de Dados em Arquivos
Ling. e Técnicas de Programação I 3º semestre Plano de Ensino 2011
Tratamento de Ficheiros
Revisão da Linguagem C.
Algoritmos e Programação Thyago Maia Tavares de Farias Aula 25.
Aula 4 Prof. Naércio Filho Técnico em Informática
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
1 programa dados Utilização de ficheiros externos A maneira mais simples de escrever para um ficheiro externo é redireccionar a saída de um programa: em.
1 programa dados Utilização de ficheiros externos A maneira mais simples de escrever para um ficheiro externo é redireccionar a saída de um programa: em.
PROGRAMAÇÃO ESTRUTURADA II
Instruções condicionais
Ordenação e Pesquisa de Dados Marco Antonio Montebello Júnior
Manipulação de Arquivos em C
Arquivos Continuação.
Streams –input e output
DAVID ANDERSON CARDOSO DANTAS
Aula Prática 12 Operações com Arquivos Monitoria
Computação Eletrônica
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.
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
Salvando em Arquivos. Arquivos Um arquivo pode estar associado a qualquer dispositivo de entrada e saída, como por exemplo: teclado, video, impressora,
Curso Técnico em Informática Professor Igor Vale.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Felipe Nunes Flores – Programa de Educação Tutorial.
Aula de Entrada / Saída Monitores: Alessandro Luna Leonardo Ribeiro Mardoqueu Vieira Mozart Araújo Filho.
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.
Programação de Computadores I – Arquivos Profa. Mercedes Gonzales Márquez.
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)
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)
Fundamentos de Programação 1 Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Seqüências ou de Texto ”. 1.
1 Aula 08 Conteúdo de Suporte ao Trabalho 2 Prof. Filipe Mutz.
Algoritmos e Estruturas de Dados I
Transcrição da apresentação:

Prof. Luis Otavio Alvares Arquivos Prof. Luis Otavio Alvares

Introdução a linguagem C utiliza o conceito de fluxo (stream) de dados para manipular vários tipos de dispositivos de armazenamento. Dados podem ser manipulados em dois diferentes tipos de fluxos: fluxos de texto e fluxos binários. Um fluxo de texto é composto por uma seqüência de caracteres, que pode ou não ser dividida em linhas terminadas por um caracter de final de linha.

Arquivos Um arquivo pode estar associado a qualquer dispositivo de entrada e saída, como por exemplo: teclado, video, impressora, disco rígido, etc. O processo de trabalhar com arquivos em C consiste em três etapas: Abrir o arquivo; Ler e/ou gravar as informaçõeses desejadas no arquivo; Fechar o arquivo.

Funções de entrada e saída As funções mais usadas estão armazenadas na biblioteca stdio.h fopen() - Abre um arquivo fputc() - Escreve um caracter em um arquivo fgetc() - Lê um caracter de um arquivo fputs() – escreve uma string em um arquivo fgets() – lê uma linha de um arquivo fprintf()- Equivalente a printf() fscanf() - Equivalente a scanf() rewind() - Posiciona o arquivo no início feof() - Retorna verdadeiro se chegou ao fim do arquivo fclose() – fecha

Abertura de arquivo Antes de qualquer operação ser executada com o arquivo, ele deve ser aberto. Esta operação associa um fluxo de dados a um arquivo. Um arquivo pode ser aberto de diversas maneiras: leitura, escrita, leitura/escrita, adicão de texto, etc. A função utilizada para abrir o arquivo é fopen()

A função fopen() fopen(nome arquivo,modo de uso). Os modos de uso mais comuns são: r (de read) : abre um arquivo texto para leitura w (de write) : cria um arquivo texto para escrita a (de append) : para adicionar conteúdo no fim de um arquivo texto já existente r+ : abre um arquivo texto para leitura/escrita w+ : cria um arquivo texto para leitura/escrita

Exemplo de uso #include<stdio.h> #include<stdlib.h> int main(){ FILE *arquivo; //vai ser associada ao arquivo arquivo = fopen("c:/luis/teste9.txt","r"); if(arquivo==0) printf("Erro na leitura do arquivo\n"); else printf("Arquivo aberto com sucesso\n"); fclose(arquivo); //fecha arquivo system("pause"); }

Leitura e gravação fgets (string, tamanho, arquivo) fputs(string, arquivo) fgetc(arquivo) fputc(char, arquivo)

Exemplo: programa que faz copia de um arquivo //copia o conteudo do arquivo tmp.txt em tmpCopy.txt #include<stdio.h> #include<stdlib.h> #define MAX 80 main(){ int ch; char linha[MAX]; FILE *input, *output; // uma forma de copiar (linha a linha) input = fopen( "tmp.txt", "r" ); if(input){ output = fopen( "tmpCopy2.txt", "w" ); fgets(linha, MAX, input); while(!feof(input) ) { fputs( linha, output ); } fputs( linha, output ); //para escrever a ultima linha (do EOF) fclose( input ); fclose( output ); else printf ("deu erro na abertura do arquivo tmp.txt\n"); system("pause");

continuação // outra forma de copiar (caracter a caracter) input = fopen("tmp.txt", "r"); if(input){ output = fopen( "tmpCopy.txt", "w" ); ch = fgetc( input ); while( ch != EOF ) { fputc( ch, output ); } fclose( input ); fclose( output ); else printf ("deu erro na abertura do arquivo tmp.txt\n"); system("pause");

Exemplo mais completo // grava o nome de cinco alunos em um arquivo e depois le o arquivo e // mostra os nomes escritos #include <stdio.h> #include <string.h> #include <stdlib.h> main(){ FILE *p; char c, str[30], frase[80] = "Este e um arquivo chamado: “; char alunos [5][50], mostratexto [50]; int i,j=0, cont=0; // Le um nome para o arquivo a ser aberto: printf("\n\n Entre com um nome para o arquivo:\n"); gets(str); // le os nomes dos alunos e coloca no vetor alunos for (cont=0;cont<5;cont++) { printf ("\nInforme o nome do aluno %d: ", cont+1); gets(alunos[cont]); }

// abre o arquivo para gravacao if (!(p = fopen(str,"w"))) // Caso ocorra algum erro na abertura //do arquivo da' mensagem e nao faz nada { printf("Erro! Impossivel abrir o arquivo!\n"); } else { // Se nao houve erro, grava o arquivo e o fecha ... for (i=0; i<5; i++){ strcat(alunos[i], "\n"); //concatena o \n no final da linha fputs(alunos[i],p); // grava no arquivo p fclose(p); // fecha o arquivo ao final da gravacao printf("\nTerminei de escrever, agora vou ler.\n"); // Abre novamente, agora para leitura p = fopen(str,"r"); //uma forma de mostrar fgets(mostratexto, 50, p); while (!feof(p)) // Enquanto não chegar no final do arquivo p printf("%s",mostratexto); fclose(p); // Fecha o arquivo p

// outra forma de mostrar printf("\nde novo\n"); p = fopen(str,"r"); for (i=0; i<5; i++){ fgets(alunos[i], 50, p); printf("%s",alunos[i]); } fclose(p); // Fecha o arquivo } // do else de erro de abertura do arquivo system("pause");

Exercício Faça um programa que decodifique um determinado texto gravado em um arquivo, a partir da seguinte tabela de substituição de caracteres, gerando um novo arquivo: CARACTER EXISTENTE SUBSTITUIR POR A Z E Y I X O W U *

//copia o conteudo do arquivo tmp. txt em tmpCopy //copia o conteudo do arquivo tmp.txt em tmpCopy.txt, com alteracoes #include<stdio.h> #include<stdlib.h> main(){ int c; FILE *ent, *sai; ent = fopen("tmp.txt", "r"); if(ent){ sai = fopen( "tmpCopy.txt", "w" ); c = fgetc( ent ); while( c != EOF ) { switch (c) { case 'A': c='Z';break; case 'E': c='Y';break; case 'I': c='X';break; case 'O': c='W';break; case 'U': c='*';break; } fputc( c, sai ); fclose( ent ); fclose( sai ); else printf ("deu erro na abertura do arquivo tmp.txt\n"); system("pause");

Exercício Considere um arquivo tipo texto já gravado. Gere um novo arquivo com uma nova linha, com dados lidos do teclado, entre a terceira e a quarta linha deste texto. Mostre o conteudo do arquivo original e do novo.

Exemplo de solução //copia o conteudo do arquivo original.txt em copia.txt #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX 150 main(){ int i; char linha[MAX]; FILE *entrada, *saida; entrada = fopen( "original.txt", "r" ); if(entrada){ saida = fopen( "copia.txt", "w" ); for (i=1;i<4;i++){ fgets(linha, MAX, entrada);//le as primeiras linhas fputs(linha, saida ); // copia para o arquivo de saida } printf("Informe o conteudo da linha a ser inserida: "); gets(linha); strcat(linha,"\n"); fputs(linha, saida ); // escreve a linha adicionada

continuação // copia o resto do arquivo, sem alteracao fgets(linha, MAX, entrada); while(!feof(entrada) ) { fputs( linha, saida ); } fputs( linha, saida ); //para escrever a ultima linha (do EOF) fclose( entrada ); fclose( saida ); else printf ("deu erro na abertura do arquivo original.txt\n"); system("pause");