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

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

PROGRAMAÇÃO ESTRUTURADA II

Apresentações semelhantes


Apresentação em tema: "PROGRAMAÇÃO ESTRUTURADA II"— Transcrição da apresentação:

1 PROGRAMAÇÃO ESTRUTURADA II
Profª. Noeli Ciência da Computação 1

2 ARQUIVOS Cap 12 – modulo 2 CIÊNCIA DA COMPUTAÇÃO

3 ARQUIVOS Um arquivo em disco é um espaço com diversas características físicas, dependendo do tipo de dispositivo que é usado (disquete, disco rígido, CD, ...). Porém, um arquivo em disco, pode ser visto como um espaço sequencial (“stream”) onde são lido ou gravados os dados. A cada arquivo está associado um nome, pelo qual o mesmo é conhecido externamente, isto é, o nome que consta no diretório do disco. CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

4 ARQUIVOS Existem dois tipos de arquivos: Arquivos de Texto;
Arquivos Binários; CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

5 ARQUIVOS DE TEXTO Onde são gravados apenas os caracteres como se fosse no vídeo e de onde são lidos caracteres como se estivessem sendo digitados no teclado. Por exemplo: Os programas fonte (nomedoprograma.c) que são digitados, são exemplos de arquivos de texto. Um arquivo texto pode ser visualizado com editor de texto (word, wordpad ou o próprio editor do compilador c). CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

6 ARQUIVOS BINÁRIOS Onde são gravados os dados como estão na
memória. Por exemplo: Uma variável inteira é gravada com 4 bytes com o conteúdo exato que está na memória. Não é possível ver o conteúdo de um arquivo binário usando um editor de texto. Para isso é necessário ler o arquivo e imprimí-lo no vídeo com printf, por exemplo. CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

7 ARQUIVOS O sistema de entrada e saída do ANCI C é composto por uma série de funções, cujos protótipos estão reunidos em stdio.h. Todas estas funções trabalham com o conceito “conceito de arquivo”. Este não é um tipo propriamente dito, mas uma definição usando o comando typedef. Esta definição também está na biblioteca stdio.h. CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

8 DECLARAÇÃO DE ARQUIVOS
Podemos declarar um ponteiro de arquivo da seguinte maneira: FILE *p; p será então um ponteiro para um arquivo. É usando este tipo de ponteiro que vamos poder manipular arquivos em C. CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

9 Fopen() - file open ABERTURA DE ARQUIVOS
Função de abertura de arquivos. Seu protótipo é: FILE *fopen (char *nome_do_arquivo, char *modo); O nome_do_arquivo determina qual arquivo deverá ser aberto. O modo de abertura diz à função fopen() que tipo de uso você vai fazer do arquivo. CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

10 ABERTURA DE ARQUIVOS COMO É ABERTO O ARQUIVO Nome do arquivo
SISTEMA OPERACIONAL Nome do arquivo PROGRAMA C ler, gravar, etc. Ponteiro para FILE DISCO CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

11 ABERTURA DE ARQUIVOS Exemplo: FILE *arq;
arq = fopen("C:\\teste.txt","w"); Modo de Abertura Caminho e Nome do arquivo CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

12 TABELA DE MODOS Modo Significado “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.

13 TABELA DE MODOS Modo Significado “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 existir 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+” só que o arquivo é binario. “a+b” Acrescenta dados ou cria um arquivo binário para leitura e escrita. O mesmo que “a+” acima, só que o arquivo é binário.

14 FUNÇÃO exit() Para utiliza-la deve-se colocar um include
para o arquivo de cabeçalho stdlib.h. Esta função aborta a execução do programa. Pode ser chamada de qualquer ponto do programa e faz com que o programa termine e retorne, para o sistema operacional, o código_de_retorno. A função exit() se torna importante em casos em como alocação dinâmica e abertura de arquivos pois nestes casos, se o programa não conseguir a memória necessária ou abrir o arquivo, a melhor saída pode ser terminar a execução do programa. CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

15 FECHAMENTO DE ARQUIVOS
fclose() – file close Quando acabamos de usar um arquivo que abrimos, devemos fechá-lo. Para tanto se usa a função fclose(): int fclose (FILE * arq); O ponteiro arq passado à função fclose() determina o arquivo a ser fechado. A função retorna zero no caso de sucesso. CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

16 EXEMPLO 1 #include <stdio.h> #include <stdlib.h>
void main() { FILE *arq; arq = fopen("C:\\teste.txt","w"); if( !arq ) { printf("Falha ao criar o arquivo!!!\n\n"); exit(1); } else printf("Arquivo criado com sucesso!!!\n\n"); if (fclose(arq) == 0) printf("Arquivo fechado com sucesso!!!\n\n"); system("PAUSE"); EXEMPLO 1

17 fputs() ESCRITA EM ARQUIVOS
A função fputs escreve caracteres em um arquivo que foi previamente aberto para escrita. Seu protótipo é: fputs(palavra, arquivo) CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

18 EXEMPLO 2 #include <stdio.h> #include <stdlib.h>
#include <string.h> void main() { char str[80]; FILE *fp; fp = fopen("C:\\TESTE.txt", "a+"); if(fp ==NULL) { printf("arquivo nao pode ser aberto\n"); exit(1); } do { printf("entre uma string (ENTER para sair):\n"); gets(str); strcat(str, "\n"); /* acrescenta uma nova linha */ fputs(str, fp); } while(*str!='\n'); system("PAUSE"); EXEMPLO 2

19 fgets() LEITURA EM ARQUIVOS
Lê uma cadeia de caracteres em um arquivo, até que seja encontrado um caractere de nova linha ou até que o tamanho da string – 1 (menos um) tenham sido lidos: fgets(string, tamanho_string,arquivo) CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO

20 EXEMPLO 3 #include <stdio.h> #include <stdlib.h>
#include <string.h> void main(void) { char str[80]; FILE *fp; if((fp = fopen("c:\\TEST.txt", "a+"))==NULL) { printf("arquivo nao pode ser aberto\n"); exit(1); } do { printf("entre uma string (CR para sair):\n"); gets(str); strcat(str, "\n"); /* acrescenta uma nova linha */ fputs(str, fp); } while(*str!='\n'); rewind(fp); /* reinicializa o indicador de posiçao de arquivo*/ while(!feof(fp)) { fgets(str, 79, fp); printf(“%s”,str); } fclose(fp); system("PAUSE");} EXEMPLO 3

21 feof() (“End fo File”) indica o fim do arquivo.
LEITURA EM ARQUIVOS feof() (“End fo File”) indica o fim do arquivo. Ás vezes é necessário verificar se um arquivo chegou ao fim. Podemos verificar se o final do arquivo foi atingido feof(arquivo) CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO


Carregar ppt "PROGRAMAÇÃO ESTRUTURADA II"

Apresentações semelhantes


Anúncios Google