Escolar Documentos
Profissional Documentos
Cultura Documentos
Arquivos
Roteiro
• Lembrete!
• Introdução
• Tipos de arquivos
• Definição de arquivos
1
Boas práticas de programação!
• Identação e comentários;
• Nomes significativos;
Roteiro
• Lembrete!
• Introdução
• Tipos de arquivos
• Definição de arquivos
2
Introdução
• Programas manipulam variáveis;
– Forma abstrata de enxergar os dados;
– Internamente indicam células de memória.
Introdução
• Conheceremos outro tipo de memória,
chamada de memória persistente;
– Conteúdo “permanente” e acessado por outros
programas;
– Tem capacidade de manter as informações por
um longo tempo.
– Manipulação e acesso mais lento!
3
Roteiro
• Lembrete!
• Introdução
• Tipos de arquivos
• Definição de arquivos
Tipos de arquivos
• Os arquivos são tipos de streams:
– Sequências de informações.
4
Tipos de arquivos – Arquivos texto
• Um arquivo texto é uma sequência de
caracteres;
• Pode ser aberto no editor de texto
convencional!
– Seu sentido e alteração continuará fazer sentido.
Exemplo de arquivo texto com
impressão de 3 variáveis: Representação de um
real = 145.65 arquivo texto:
lista = “Lista de caracteres!” 145.65
inteiro = 674 Lista de caracteres!
674
5
Algumas diferenças
• Arquivos binários usam menos memória do
que arquivos texto;
– Exemplo:
• Número inteiro: 45
– Armazenamento:
• Texto: 1 byte para cada caracter
• Binário: apenas 1 byte
Roteiro
• Lembrete!
• Introdução
• Tipos de arquivos
• Definição de arquivos
6
Definição de arquivos
• Para que os arquivos possam ser utilizados
por programas, eles devem ser tratados
como variáveis;
• Como tratamos uma variável?
– Declaramos!
– Tipo: FILE
• Exemplo:
FILE *arq;
• Que biblioteca?
#include <stdio.h>
Roteiro
• Lembrete!
• Introdução
• Tipos de arquivos
• Definição de arquivos
7
Operação sobre arquivos
• Todas as operações são realizadas através
de funções!
– O que lembra um TAD!!!
• Principais operações:
– Abertura e fechamento - gerais;
• Outras operações:
– Leitura e escrita – dependente do tipo de
arquivos;
8
Operação sobre arquivos - Abertura
• Modo de acesso:
Parâmetro Efeito
r Abre um arquivo-texto para leitura
w Cria um arquivo-texto para escrita
a Abre um arquivo-texto para gravar ao fim dele
r+ Abre um arquivo-texto para leitura/escrita
w+ Cria um arquivo-texto para leitura/escrita
a+ Abre ou cria (se não existir) um arquivo-texto para ler dele
ou gravar ao fim dele
rb Abre um arquivo binário para leitura
wb Cria um arquivo binário para escrita
ab Abre um arquivo binário para gravar ao m dele
r+b Abre um arquivo binário para leitura/escrita
w+b Cria um arquivo binário para leitura/escrita
a+b Abre ou cria um arquivo binário para gravar ao fim dele
9
Operação sobre arquivos - Abertura
• Validadação:
– O arquivo pode não existir ou pode não ser
aberto;
• Neste caso a função fopen() retornará NULL;
– Indicará que houve falha na abertura do arquivo.
• Exemplo:
1. // Declaracao de variaveis.
2. FILE *arq_ex3;
3.
4. // Abertura de arquivo.
5. arq_ex3 = fopen(“somente_escrita.txt”, “r”);
6.
7. if (arq_ex3 == NULL) {
8. printf(“Erro na abertura do arquivo! Finalizando programa...”);
9. exit (1);
10. }
10
Roteiro
• Lembrete!
• Introdução
• Tipos de arquivos
• Definição de arquivos
11
Operações sobre arquivos texto - Leitura
• Exemplo de uso do fscanf():
1. #include <stdio.h>
2.
12
Operações sobre arquivos texto - Escrita
• Em C, usa se a função fprintf();
• Seu protótipo:
1. int fprintf(FILE *arq, const char
*format, ...);
13
Roteiro
• Lembrete!
• Introdução
• Tipos de arquivos
• Definição de arquivos
14
Operações sobre arquivos binários -
Leitura
• Exemplo de uso do fread():
1. int inteiro;
2. float real;
3. char caract;
4.
5. /* ... */
6. fread(&inteiro, sizeof (int), 1, arquivo);
7. fread(&real, sizeof (float), 1, arquivo);
8. fread(&carac, sizeof (char), 1, arquivo);
15
Operações sobre arquivos binários -
Escrita
• Exemplo de uso do fwrite():
1. typedef struct str_Pessoa {
2. char nome[50]; int idade; char sexo;
3. } tipo_Pessoa;
4. int main (void) {
5. FILE *arquivo;
6. tipo_Pessoa p;
7.
15. fclose(arquivo);
16.
17. return p;
18. }
16