Buscar

Introdução a Arquivos em Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação Estruturada – Arquivos (P1)
Prof. Lincoln Faria
lfaria@unicarioca.edu.br
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 2
Aula de hoje
-->Arquivos e fluxos
-->Manipulação de arquivos de acesso 
sequencial
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 3
Arquivos e fluxos
 Introdução:
 O armazenamento de dados em variáveis e 
matrizes é temporário; todos os dados são 
perdidos quando um programa termina. Os 
arquivos são usados para conservação 
permanente de grandes quantidades de dados. 
Os computadores armazenam arquivos em 
dispositivos secundários de armazenamento, 
especialmente dispositivos de armazenamento 
em disco.
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 4
Arquivos e fluxos
 Hierarquia de dados:
Bit - Os menores itens de dados em 
um computador podem assumir o valor 
0 ou o valor 1. Tal item de dados é 
chamado um bit (abreviação de binary 
digit, ou dígito binário).
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 5
Arquivos e fluxos
 Hierarquia de dados:
Caracteres – São os dígitos decimais, letras e 
símbolos especiais. Como os computadores podem 
processar apenas 1s e 0s, qualquer caractere do 
conjunto de caracteres de um computador é 
representado por uma combinação de 1s e 0s 
(chamada de byte). Atualmente, os bytes são 
normalmente compostos de oito bits. Os 
programadores criam programas e itens de dados 
como caracteres; os computadores manipulam e 
processam esses caracteres como padrões de bits.
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 6
Arquivos e fluxos
 Hierarquia de dados:
Campo – Da mesma forma que os caracteres são 
compostos de bits, os campos são compostos de 
caracteres. Um campo é um grupo de caracteres que 
possui um significado. Por exemplo, um campo 
consistindo unicamente em letras maiúsculas e 
minúsculas pode ser usado para representar o nome 
de uma pessoa.
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 7
Arquivos e fluxos
 Hierarquia de dados:
Registro – Um registro (i.e., uma struct em C) é 
composto de vários campos. Em um sistema de folha 
de pagamento, por exemplo, um registro de um 
determinado empregado pode consistir nos seguintes 
campos:
1. Número de Previdência Social
2. Nome
3. Endereço
4. Valor do salário por hora
5. Número de dispensas solicitadas
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 8
 Chave de registro:
Para facilitar a recuperação de registros 
específicos de um arquivo, pelo menos um 
campo em cada registro é escolhido como chave 
de registros. A chave de registros identifica um 
registro como pertencendo a uma determinada 
pessoa ou entidade. Por exemplo, no registro de 
folha de pagamento o número de identificação 
do empregado poderia ser escolhido para ser a 
chave de registros.
Arquivos e fluxos
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 9
Arquivos e fluxos
 Hierarquia de dados:
Arquivo – é um grupo de registros relacionados. Um 
arquivo de folha de pagamento de uma companhia 
contém um registro para cada empregado. Assim, o 
arquivo de folha de pagamento de uma pequena 
empresa talvez 22 registros, entretanto o arquivo da 
folha de pagamento de uma grande empresa pode 
conter 100.000 registros. Não é raro uma organização 
ter centenas ou mesmo milhares de arquivos e cada 
um deles possuir milhões ou até bilhões de caracteres 
de informações.
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 10
Arquivos e fluxos
Hierarquia de dados:
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 11
Arquivos e fluxos
 Hierarquia de dados:
Banco de dados – é um grupo de arquivos 
relacionados entre si. A maioria das empresas utiliza 
muitos arquivos diferentes para armazenar dados. Por 
exemplo, as companhias podem ter arquivos de folhas 
de pagamento, arquivos de contas a receber (listando 
o dinheiro devido pelos clientes), arquivos de contas a 
pagar (listando o dinheiro devido aos fornecedores), 
arquivos de inventário (listando características a 
respeito de todos os itens gerenciados pela empresa 
muitos outros tipos de arquivos.
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 12
Arquivos e fluxos
 Arquivos e streams:
A linguagem C considera arquivo simplesmente 
como uma sequência de bytes ou um fluxo de 
bytes, que é uma streams. Todo lugar que tem 
capacidade receber ou transmitir bytes da ou 
para a memória, recebe o nome de arquivo. 
Assim, arquivos em disco, teclado, vídeo, 
impressora, portas de comunicação são 
exemplos de arquivos para a linguagem C.
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 13
Manipulação de arquivos de acesso 
sequencial
 Há muitas maneiras de organizar registros 
em um arquivo. No tipo mais comum de 
organização, arquivo sequencial, registros são 
organizados normalmente segundo o campo de 
chave dos registros. Em um arquivo de folha de 
pagamentos, por exemplo, poderíamos usar o 
número de identificação dos empregados. O 
registro do primeiro empregado no arquivo 
conteria o menor número de identificação e os 
registros subsequentes conteriam números de 
identificação em ordem crescente.
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 14
Manipulação de arquivos de acesso 
sequencial
Exemplo 01: 
criação de um 
arquivo com 5 
registro.
#include <stdio.h>
#include <locale.h>
struct banco_clientes{
int conta;
char nome[20];
float saldo;
};
typedef struct banco_clientes banco_clientes;
int main(void){
 setlocale(LC_ALL, "Portuguese");
 int i;
 banco_clientes cliente = {0,"",0.0};
 FILE *fp;
 fp=fopen("Clientes.dat","wb");
 if(fp==NULL){ /*testando a abertura do arquivo*/
 printf("Impossível abrir o arquivo %s!\n","Clientes.dat");
 }
 else{
 printf("Arquivo %s aberto com sucesso!\n\n","Clientes.dat");
 for(i=0;i<5;i++){
 fwrite(&cliente, sizeof(banco_clientes), 1, fp);
 }
 }
 fclose(fp);
 return 0;
}
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 15
Manipulação de arquivos de acesso 
sequencial
Exemplo 01: 
criação de um 
arquivo de 
acesso 
sequencial.
Conta Nome Saldo
0 0.00
0 0.00
0 0.00
0 0.00
0 0.00
No arquivo Clientes.dat:
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 16
Manipulação de arquivos de acesso 
sequencial
Principais funções de manipulação de arquivos:
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 17
Manipulação de arquivos de acesso 
sequencial
Função fopen( ):
FILE *fp;
fp=fopen("Clientes.dat","w");
Ponteiro do tipo 
FILE para arquivo
Modos de abertura 
de arquivo
Uma string com o 
nome do arquivo
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 18
Manipulação de arquivos de acesso 
sequencial
Principais modos de abertura de arquivo:
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 19
Manipulação de arquivos de acesso 
sequencial
Principais modos de abertura de arquivo:
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 20
Manipulação de arquivos de acesso 
sequencial
Função fclose( ):
Recebe o ponteiro 
de aquivo, 
fechando a stream 
que foi aberta por 
meio de uma chama 
da a fopen( )
fclose(fp);
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 21
Manipulação de arquivos de acesso 
sequencial
Exemplo 02: 
escrita em 
arquivo de 
acesso 
sequencial.
#include <stdio.h>
#include <locale.h>
struct banco_clientes{
int conta;
char nome[20];
float saldo;
};
typedef struct banco_clientes banco_clientes;
int main(void){
 setlocale(LC_ALL, "Portuguese");
 int i;
 banco_clientes cliente = {0,"",0.0};
 FILE *fp;
 fp=fopen("Clientes.dat","rb+");
 if(fp==NULL){ /*testando a abertura do arquivo*/
 printf("Impossível abrir o arquivo %s!\n","Clientes.dat");
 }
 else{
 printf("Arquivo %s aberto com sucesso!\n\n","Clientes.dat");
 for(i=0;i<5;i++){
 cliente.conta=i;
 printf("Digite o nome e o saldo do cliente %d: \n", cliente.conta);
 scanf("%s%f",cliente.nome, &cliente.saldo);
 fwrite(&cliente, sizeof(banco_clientes), 1, fp);
 }
 }
 fclose(fp);
 return 0;
}
Prof.Lincoln Faria - lfaria@unicarioca.edu.br 22
Manipulação de arquivos de acesso 
sequencial
Exemplo 02: 
criação de um 
arquivo de 
acesso 
sequencial.
Conta Nome Saldo
0 Pedro 200.00
1 Rebeca -100.00
2 João 50.00
3 Maria 200.00
4 Carlos -300.00
Arquivo Clientes.dat aberto com sucesso!
Digite o nome e o saldo do cliente 0: Pedro 200
Digite o nome e o saldo do cliente 1: Rebeca -100
Digite o nome e o saldo do cliente 2: João 50
Digite o nome e o saldo do cliente 3: Maria 200
Digite o nome e o saldo do cliente 4: Carlos -300
Na tela do computador:
No arquivo Clentes.dat:
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 23
Manipulação de arquivos de acesso 
sequencial
Exemplo 03: 
leitura de um 
arquivo de 
acesso 
sequencial.
#include <stdio.h>
#include <locale.h>
struct banco_clientes{
int conta;
char nome[20];
float saldo;
};
typedef struct banco_clientes banco_clientes;
int main(void){
 setlocale(LC_ALL, "Portuguese");
 banco_clientes cliente = {0,"",0.0};
 FILE *fp;
 fp=fopen("Clientes.dat","r");
 if(fp==NULL){ /*testando a abertura do arquivo*/
 printf("Impossível abrir o arquivo %s!\n","Clientes.dat");
 }
 else{
 printf("Arquivo %s aberto com sucesso!\n\n","Clientes.dat");
 printf("%-10s%-13s%s\n","Conta","Nome", "Saldo");
 while(!feof(fp)){
 fread(&cliente, sizeof(banco_clientes),1,fp);
 printf("%-10d%-13s%.2f\n",cliente.conta, cliente.nome, cliente.saldo);
 }
 }
 fclose(fp);
 return 0;
}
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 24
Manipulação de arquivos de acesso 
sequencial
Exemplo 03: 
leitura de um 
arquivo de 
acesso 
sequencial.
Conta Nome Saldo
0 Pedro 200.00
1 Rebeca -100.00
2 João 50.00
3 Maria 200.00
4 Carlos -300.00
Na tela do computador:
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 25
Problema
Escreva, em linguagem C, um programa que salve, em 
arquivo, uma frase digitada pelo usuário. Seu programa deve 
conter as seguintes tarefas:
a) Criação e abertura de um arquivo com o nome “frase.dat”.
b) Um teste para verificar se a abertura do arquivo “frase.dat” 
foi bem sucedida.
c) Uma solicitação ao usuário, ou seja, pedir ao usuário que 
entre, via teclado, com uma frase.
d) Gravação da frase digitada no arquivo “frase.dat”.
e) Fechamento do arquivo.
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 26
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(void){
 setlocale(LC_ALL, "Portuguese");
 char nome[50];
 FILE *fp;
 fp=fopen("frase.dat","w");
 if(fp==NULL){ /*testando a abertura do arquivo*/
 printf("Impossível abrir o arquivo %s!\n","frase.dat");
 }
 else{
 printf("Arquivo %s aberto com sucesso!\n","frase.dat");
 printf("Digite uma frase: ");
 gets(nome);
 fprintf(fp,"%s",nome);
 }
 fclose(fp);
 return 0;
}
Possível solução
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 27
Considerações finais
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27

Continue navegando

Outros materiais