Buscar

Aula 22 Arquivos .pdf

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 15 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 15 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 15 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

Arquivos: Definic¸a˜o e Func¸o˜es em C
Professor:
Silvio Luiz Bragatto Boss
e-mail:
silvioboss@utfpr.edu.br
Universidade Tecnolo´gica Federal do Parana´ - UTFPR
Coordenac¸a˜o de Informa´tica - COINF
Curso de Engenharia de Computac¸a˜o
Disciplina de Estrutura de Dados I
Arquivos
Suma´rio
1 Arquivos
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
Tipos de Arquivos
Podemos dividir os arquivos em 2 tipos: Arquivos Texto e arquivos
bina´rios.
Arquivos Texto sa˜o arquivos que na˜o possuem um formato
definido, sendo composto apenas por sequencias de bytes.
Podemos ler e escrever sequencias de bytes em arquivos de
forma semelhante a ler strings do teclado e escrever strings na
tela. Caso seja armazenado um valor ex: 1234567 esse
nu´mero gastara´ 7 bytes pois cada um de seus d´ıgitos e´
representado como um caractere.
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
Tipos de Arquivos
Arquivos bina´rios sa˜o arquivos que possuem uma estrutura
definida atrave´s de um typedef ou struct e podemos ler ou
gravar elementos com estas estruturas. Podemos tambe´m
gravar o valor de varia´veis int, float, double, etc. Caso seja
armazenado o valor de nu´mero inteiro 1234567 esse nu´mero
(que e´ um inteiro de 32 bits) gastara´ 4 bytes de espac¸o pois
um inteiro ocupa 4 bytes.
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
Tipos de Arquivos
Arquivos bina´rios sa˜o arquivos que possuem uma estrutura
definida atrave´s de um typedef ou struct e podemos ler ou
gravar elementos com estas estruturas. Podemos tambe´m
gravar o valor de varia´veis int, float, double, etc. Caso seja
armazenado o valor de nu´mero inteiro 1234567 esse nu´mero
(que e´ um inteiro de 32 bits) gastara´ 4 bytes de espac¸o pois
um inteiro ocupa 4 bytes.
O Foco dessa aula sera´ sob manipulac¸a˜o de arquivos bina´rios
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
Existem 3 formas de acessar arquivos:
Sequencial: Os registros sa˜o lidos em sequencia, um apo´s o
outro. A cada registro lido o indicador de posic¸a˜o de arquivo e´
avanc¸ado para que a pro´xima leitura ocorra iniciando naquele
ponto.
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
Existem 3 formas de acessar arquivos:
Sequencial: Os registros sa˜o lidos em sequencia, um apo´s o
outro. A cada registro lido o indicador de posic¸a˜o de arquivo e´
avanc¸ado para que a pro´xima leitura ocorra iniciando naquele
ponto.
Direto: Pode-se acessar qualquer posic¸a˜o do arquivo, para
tanto e´ preciso ajustar o indicador de posic¸a˜o do arquivo para
onde deseja-se realizar uma operac¸a˜o de leitura/escrita.
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
Existem 3 formas de acessar arquivos:
Indexado: O modo indexado e´ implementando em C usando
as operac¸o˜es do modo de acesso direto. Vamos imaginar um
arquivo de dados (agenda telefoˆnica) com 1000 registros de
pessoas. Cada registro desses esta´ localizado numa posic¸a˜o do
arquivo. Agora, cria-se um arquivo auxiliar (chamado de
arquivo de ı´ndices). Este arquivo de ı´ndices armazena um dos
campos do arquivo de dados (por exemplo o campo nome) e
um campo posic¸a˜o que informa qual a posic¸a˜o do registro
daquela pessoa no arquivo de dados. Veja a figura no slide
seguinte.
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
O arquivo de ı´ndices e´ menor do que o arquivo de dados e pode ser
lido na sua totalidade e armazenado em memo´ria sob a forma de
uma tabela hash ou outra estrutura de dados que permita uma
pesquisa ra´pida. Para criar uma operac¸a˜o de busca de uma pessoa
na agenda, basta realizar a busca na tabela hash ou diretamente
sobre o arquivo de ı´ndices, encontrar a posic¸a˜o do registro desejado
no arquivo.
Em posse da posic¸a˜o do registro no arquivo, realiza-se um ajuste
do indicador de posic¸a˜o usando a func¸a˜o fseek. Por exemplo, para
acessar o registro da Ana Lucia basta acessar o arquivo de indices
e obter que o registro esta´ na posic¸a˜o 192 e depois
fseek(ID_Arq_DADOS,192,SEEK_SET) e depois
fread(&destino,sizeof(struct tipo_reg),1,ID_Arq_DADOS);
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
fopen () Abre um arquivo
fclose() Fecha um arquivo
fputc() e fputs() Escreve um caractere e uma string no arquivo
fgetc() e fgets() Leˆ um caractere e uma string de um arquivo
fseek() Posiciona o arquivo em um byte espec´ıfico
fprintf() E´ para um arquivo o que printf() e´ para o console
fscanf() E´ para um arquivo o que scanf() e´ para o console
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
feof() Verdadeiro se o fim de arquivo for encontrado
ferror() Verdadeiro se ocorreu um erro
rewind() Recoloca o ponteiro de registro (indicador de
posic¸a˜o) no in´ıcio do arquivo
remove() Apaga um arquivo
fflush() Descarrega um arquivo
fread() Leˆ sequencia de bytes de arquivo
fwrite() escreve sequencia de bytes em arquivo
ftell () Obte´m a posic¸a˜o atual no arquivo
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
Programas fonte em C para estudo
Estude o programa fonte cria_agenda.c. Este programa e´ responsa´vel pela
criac¸a˜o de um arquivo DADOS.DAD com registros de alunos, no total sa˜o
inseridos 5 registros.
Cada registro possui os seguintes campos:
typedef struct {
char nome[30];
char endereco[30];
int idade;
int CPF;
int RG;
int matricula_universidade;
char nome_pai[30];
char nome_mae[30];
char email[30];
}Tipo_Registro;
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
Agora:
estude o programa fonte mostra_agenda.c. Este programa
mostra na tela todo o conteu´do do banco de dados (mostra apenas
o nome e email)
[0]Nome:Maria da silva Email:maria@nanana.dd.dd
[1]Nome:Joao Paulo Email:joao@universidade.dd.dd
[2]Nome:Naiara Martins Email:naiara@universidade.dd.dd
[3]Nome:Rodrigo Cambara Email:rodrigo@universidade.dd.dd
[4]Nome:Juvenal terra Email:juvenal@universidade.dd.dd
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX
Arquivos
Arquivo
Estude os programas fontes dispon´ıvel no Moodle
binario.c
le_binario.c
Silvio Luiz Bragatto Boss UTFPR
Arquivos LATEX

Continue navegando