Algoritmos e Programação _ Departamento de Informática



Documentos relacionados
Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Programação de Computadores I. Linguagem C Arquivos

Manipulação de Arquivos

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Algoritmos e Estruturas de Dados I 01/2013. Arquivos. Pedro O.S. Vaz de Melo

Persistência de Dados

Fundamentos de Arquivos. SCC203 Algoritmos e Estruturas de Dados II

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Algoritmos e Estruturas de Dados I. Arquivos. Pedro O.S. Vaz de Melo

MC-102 Algoritmos e Programação de Computadores

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

14. Arquivos. W. Celes e J. L. Rangel. Estruturas de Dados PUC-Rio 13-1

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

Fundamentos de Sistemas Operacionais

Primeiro Curso de Programação em C 3 a Edição

PROG. DE COMPUTADORES II SI Arquivos

Arquivos. Estruturas de Dados II Vanessa Braganholo

1 Funções básicas de implementação de arquivos

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS

Algoritmos e Programação Estruturada

Aula: ARQUIVOS. Introdução à Ciência da Computação I Simone Senger Souza. ICMC/USP São Carlos

Estrutura de Dados Básica

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 1

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage

Componentes da linguagem C++

Manipulação de Arquivos

Linguagem de Programação I

Arquivos. Em relação ao Scilab, existem alguns tipos de arquivos que podem ser lidos, criados ou modificados.

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr.

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

INF 1005 Programação I

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Existe uma quantidade de informação que pode ser armazenada para resolver o problema.

Sistemas Operacionais: Sistema de Arquivos

Capítulo 2: Introdução à Linguagem C

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

10) REGISTROS : Exemplos: var N,I: integer; A,B,C: real; CHAVE: boolean; CARAC: char; V: array[1..20] of real; M: array[1..10,1..

Conceitos básicos da linguagem C

ARQUIVOS. Os arquivos criados em meios magnéticos poderão ser acessados para leitura e escrita na forma seqüencial, direta ou indexada.

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Introdução à Programação

Prof. Esp. Adriano Carvalho

Arquivos binários em Python

Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos

Linguagem de Programação

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais 4º Período

Introdução à Linguagem

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

INF 1005 Programação I

Capítulo 6. Gerenciamento de Arquivos. 6.1 Arquivos 6.2 Diretórios 6.3 Implementação (6.3.1 a 6.3.6) 6.4 Exemplos

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa

Princípios de funcionamento dos computadores

Trabalho 3: Agenda de Tarefas

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Notas de Aulas (parte 2)

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LÓGICA DE PROGRAMAÇÃO

Estrutura de um programa em linguagem C

Introdução a Java. Hélder Nunes

Computação 2. Aula 8. Profª. Fabiany Arquivos

FundamentosemInformática

Algoritmos e Programação

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Lição 1 Introdução à programação de computadores

Folha Prática 2. Lab. 2

5 Apresentando a linguagem C

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Sistemas Operacionais. Andrique Amorim Gerência de Arquivos

Orientação a Objetos

Programação de Computadores I. Ponteiros

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s

Arquitetura de Computadores. Tipos de Instruções

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Introdução à Lógica de Programação

Transcrição:

16 ARQUIVOS Um arquivo corresponde a um conjunto de informações (exemplo: uma estrutura de dados-registro), que pode ser armazenado em um dispositivo de memória permanente, exemplo disco rígido. As operações básicas para manipulação de arquivos são: abertura e fechamento do arquivo, leitura, gravação e exclusão de dados (exemplo registros). 16.1 TIPOS DE ARQUIVOS Os dados dos arquivos podem ser armazenados/acessados basicamente de dois modos: sequencial ou direto (randômico). 16.1.1 Sequencial Os dados são gravados no arquivo de forma contínua, um após o outro. A localização de qualquer um dos dados é indeterminada, para ter acesso a um dado específico é necessário percorrer todos os que o antecedem e para gravar um novo dado é necessário encontrar o final do arquivo. 16.1.2 Direto (Randômico) Neste tipo de arquivo os dados (registros) são acessados de forma direta, ou seja, através de algum de seus campos definido como chave, pode-se então acessar os dados (demais campos do registro), sem a necessidade de processar os registros que estão fisicamente antes dele no arquivo. 16.1.2.1 Arquivo Indexado (Arquivo sequencial de acesso direto) Normalmente é composto por mais de um arquivo: um arquivo de índices (chaves) que contém a posição (endereço) de cada registro no outro arquivo de dados. 16.2 TRATAMENTO DE ARQUIVOS EM LINGUAGEM C 16.2.1 Leitura e Gravação em Disco 1) Caracter: os dados são lidos e escritos caracter a caracter. getc(file); putc(char, file); Professor: Ivo Mário Mathias 66

2) string: os dados são lidos e escritos como strings. fgets(string, tam-max, file); fputs(string, file); 3) Formatado: os dados são lidos e escritos de modo formatado. fscanf(ptr_file, formato, var_ destino); fprintf(ptr_file, formato, var_destino); 4) Bloco: os dados são lidos e escritos num formato chamado registro ou bloco. Este é um grupo de dados de tamanho fixo e é usado para armazenar uma sequência de dados com itens similares, como matrizes e estruturas. fread(estrutura, tam-estrutura, qtde, ptr_file); fwrite(estrutura, tam-estrutura, qtde, ptr_file); 16.3 FORMAS DE ABERTURA 16.3.1 Modo texto Sequências de caracteres agrupadas em linhas. Números são guardados como cadeias de caracteres. Linhas são separadas por: UNIX: único caractere chamado de nova linha (LF), de código ASCII 10 decimal. DOS: cada linha é separada por dois caracteres, o caracter 13 decimal (CR) e o caracter 10 decimal (LF). Compilador C: Converte CR/LF para LF quando um arquivo é lido Converte de LF para CR/LF quando o arquivo é gravado. Indicação de fim de arquivo é enviada pelo DOS e é reconhecida pelo compilador C. 16.3.2 Modo binário Números são armazenados como estão na memória (2 bytes para inteiro, 4 para float, 8 para double ). Nenhuma conversão é feita. Qualquer caractere é lido ou gravado sem alteração. Indicação de fim de arquivo não é reconhecida, sendo interpretada como outro caracter qualquer. Obs: Principais diferenças entre modo texto e modo binário: caracter de nova linha e fim de arquivo, e forma de representar os números. 16.4 ABRINDO ARQUIVOS EM DISCO Arquivo stdio.h define a estrutura FILE que será usada para declarar arquivos. Contém informações sobre o arquivo a ser usado: seu tamanho atual, localização de seus buffers de dados, se o arquivo está sendo lido ou gravado. Professor: Ivo Mário Mathias 67

Função fopen: executa duas tarefas: 1) Preenche a estrutura FILE com as informações necessárias para o programa e para o sistema operacional; 2) Retorna um ponteiro do tipo FILE que aponta para a localização na memória da estrutura. Sintaxe: fopen("nome_do_arquivo","modo"); Exemplo de abertura e tratamento: FILE *fptr; fptr = fopen("arqlivro.arq","w"); ou FILE *fptr; if ((fptr = fopen("arqlivro.arq","w")) == NULL { printf("não é possível abrir o arquivo"); exit(0); NULL - corresponde a uma macro definida em STDIO.H, que detecta qualquer erro na abertura do arquivo (exemplo: disco protegido contra gravação, cheio, etc.) caso contrário fopen retorna o ponteiro (endereço) para a estrutura do arquivo na memória; exit() - esta função faz com que haja um terminação imediata do programa não importando de onde é chamada. Por convenção, um valor retornado ao SO significa término com sucesso, qualquer outro indica que o programa terminou por causa de algum problema. 16.4.1 Tipo de abertura dos arquivos: "r": abre arquivo texto para leitura (o arquivo deve existir). "w": abre arquivo texto para gravação. Se o arq. já existe ele é destruído, senão, um novo é criado. "a": abre arquivo texto para gravação. Os dados serão adicionados ao final do arquivo existente ou um novo arquivo será criado. "r+": abre um arquivo texto para leitura e gravação. O arquivo deve existir e pode ser atualizado. Professor: Ivo Mário Mathias 68

"w+": abre um arquivo texto para leitura e gravação. Se o arquivo existir ele será destruído e reinicializado, senão será criado. "a+": abre um arquivo texto para atualizações e para adicionar novos dados no final do arquivo existente ou um novo arquivo será criado. "a+b": Abre um arquivo binário para leitura e gravação. Se o arquivo existir, os dados serão adicionados no seu final, caso o arquivo não exista ele será criado. mesmos para arquivos binários com a letra "rb", "wb", "ab", "rb+", "wb+". 16.5 LEITURA E ESCRITA Funções fwrite e fread permitem ler e escrever blocos de dados (estruturas, matrizes) em arquivos de disco; Sintaxe: fwrite(&informação, num_bytes, itens, file) fread(&informação, num_bytes, itens, file) &informação - ponteiro para a informação que será escrita/lida (arquivo/memória); num_bytes - o número de bytes (tamanho) para ler/escrever; itens - quantidade de itens (estruturas) - (cada um tendo num_bytes de tamanho); file - ponteiro para o arquivo previamente aberto; fread - retorna o número de itens lidos; fwrite - retorna o número de itens escritos; Exemplos: if (fwrite(&livro, sizeof(livro), 1, fptr)!=1){ printf ("Erro de escrita no arquivo"); fclose(fptr); if (fread(&livro, sizeof(livro), 1, fptr)!=1) { if (feof(fptr)) { fclose(fptr); Professor: Ivo Mário Mathias 69

Observação: sizeof - operador que é usado para computar o tamanho de qualquer variável ou tipo de dado; fclose - é usado para fechar um arquivo (fluxo) aberto pela função fopen() - um valor de retorno diferente de <zero> indica problemas no arquivo. feof - encontra final do arquivo - retorna verdadeiro (> zero) se o final do arquivo tiver sido encontrado, caso contrário retorna zero; 16.6 APAGANDO ARQUIVOS A função remove() apaga o arquivo especificado. Exemplo: remove("arqlivro.arq"); Professor: Ivo Mário Mathias 70