Linguagem de Programação



Documentos relacionados
Manipulação de Arquivos em Pascal

PROG. DE COMPUTADORES II SI Arquivos

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

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

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Persistência de Dados

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação

Estrutura de Dados. Introdução a Ponteiros. Prof. Gerson Borges Estrutura de Dados I 1

Variáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea

A4 Projeto Integrador e Lista de Jogos

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

ESTRUTURA DE DADOS -VARIÁVEIS COMPOSTAS. Prof. Angelo Augusto Frozza, M.Sc.

Algoritmos e Programação Estruturada

Algumas notas sobre PASCAL

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

Lista de Comandos: Arquivo texto e Binário

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Linguagem de Programação III Aula 2 Revisão Parte II

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

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação

IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Revisão Aula Anterior Estruturas de Decisão (If e Switch)

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

Programação de Computadores I. Linguagem C Arquivos

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

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

Lista de Exercícios da 3ª Unidade. ( Ponteiros, Alocação dinâmica, Arquivos, Estruturas de Dados)

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Organização de programas em Python. Vanessa Braganholo

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

Sistemas Operacionais. Andrique Amorim Gerência de Arquivos

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

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

A Linguagem Pascal e o Ambiente de Programação Dev-Pascal. Introdução à Ciência da Computação I

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

Programação Orientada a Objetos (DPADF 0063)

MC-102 Aula 01. Instituto de Computação Unicamp

Representação de Algoritmos - Linguagens de Programação

INTRODUÇÃO OBJECT PASCAL/DELPHI

Sistemas Numéricos bit / Byte BIT BYTE. Prof. Celso Candido ADS / REDES / ENGENHARIA

OURO MODERNO Editor de textos APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Resumo da Introdução de Prática de Programação com C. A Linguagem C

NetBeans. Conhecendo um pouco da IDE

MC-102 Algoritmos e Programação de Computadores

GERENCIAMENTO DE DISPOSITIVOS

Avaliação de Expressões

Manual do Visualizador NF e KEY BEST

Curso de C para Engenharias

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição

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

Sistema MSYS. Manual de Instalação, Configuração e Suporte. Versão 7

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Estruturas (Registros)

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

INF 1005 Programação I

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

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

PROGRAMAÇÃO II 3. FILA DINÂMICA

Manipulação de Arquivos

Árvores e Árvores Binárias

Introdução ao PHP. Prof. Késsia Marchi

Introdução à Computação: Sistemas de Computação

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

UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I

JSP - ORIENTADO A OBJETOS

Capacidade de Armazenamento

Programação Orientada a Objetos (DPADF 0063)

5 Apresentando a linguagem C

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento

Dispositivos de Entrada e Saída

Eberhardt Comércio e Assist. Técnica. Ltda.

Programação Orientada a Objetos (DPADF 0063)

PROGRAMAÇÃO II 3. PILHA DINÂMICA

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

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

Sistemas Operacionais

Capítulo 14. ARQUIVOS DE SAÍDA, DE ENTRADA E INTERNOS

PROGRAMAÇÃO II 4. ÁRVORE

Manual do Desenvolvedor

Entendendo as janelas do Windows Uma janela é uma área retangular exibida na tela onde os programas são executados.

Introdução à Programação

Cookies. Krishna Tateneni Jost Schenck Tradução: Lisiane Sztoltz

Busca. Pesquisa sequencial

20 Caracteres - Tipo char

Lógica de Programação

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

Gerência do Sistema de Arquivos. Adão de Melo Neto

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

Informática básica Telecentro/Infocentro Acessa-SP

Transcrição:

Linguagem de Programação Aula 10 Arquivos Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Técnico em Informática Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno

Persistência de dados em memória secundária

Arquivos Permitem o armazenamento de dados em memória secundária (discos rígidos, memória flash, discos óticos, discos flexíveis, etc.); Que utilidade teriam nossos programas se toda a informação computada por eles se perder quando os mesmos são encerrados? Arquivos possibilitam armazenar dados para posterior recuperação.

Tipos de Arquivos Podemos diferenciar basicamente 2 tipos de arquivos: Arquivos sequencial Também conhecido como arquivo texto; Seu conteúdo somente pode ser acessado de forma sequencial; Compõe-se basicamente de uma sequência de caracteres em formato livre (não definido), pode ser editado por qualquer editor de textos Arquivos randômico Também conhecido como arquivo binário; Seu conteúdo é organizado de forma que seja possível acessar uma determinada posição do arquivo de maneira aleatória (sem precisar passar por todo o arquivo); Compõe-se de dados de um mesmo tipo dispostos sequencialmente.

Arquivos sequenciais

Arquivos sequenciais Um arquivo sequencial é organizado como sequências de caracteres em formato livre; Um arquivo fonte de uma linguagem de programação, uma página HTML, um arquivo XML ou um arquivo TXT são exemplos de arquivos sequenciais. Não há como achar uma informação dentro do arquivo sem necessariamente percorrê-lo do início até o final

Arquivos sequenciais em Pascal - TEXT Em linguagem Pascal, o tipo TEXT é utilizado para definir que uma variável irá representar um arquivo sequencial. var ListaDeTarefas : TEXT; begin //associa a variável ao arquivo físico Assign(ListaDeTarefas, 'lista.txt'); Rewrite(ListaDeTarefas); //Cria o arquivo em disco //Escreve os dados no arquivo WriteLN(ListaDeTarefas, 'Estudar Programação'); WriteLN(ListaDeTarefas, 'Namorar'); WriteLN(ListaDeTarefas, 'Fazer exercícios'); Novos comandos para tratamento de arquivos Close(ListaDeTarefas); //Fecha e grava o arquivo em disco end.

Testando a existência de um arquivo A ideia de arquivos é fazer a persistência de dados para uso futuro, sendo assim, devemos prever a existência de um arquivo antes de propor sua criação e só o criá-lo caso não exista. O código abaixo demonstra como fazer isso com uma diretiva de compilação que desabilita a verificação de erros de E/S Assign(ListaDeTarefas, 'lista.txt'); {$i-} //Desabilita a checagem de erros de E/S (Entrada e Saída) Reset(ListaDeTarefas); //Tenta abrir o arquivo {$i+} //Habilita a checagem de erros de E/S if IOResult > 0 then //Se houve algum erro de ES Rewrite(ListaDeTarefas); //Recria o arq. pois ele ñ existe

Percorrendo um arquivo sequencial Para obtermos os dados de um arquivo sequencial precisamos percorrê-lo do início ao fim, o código abaixo demonstra como isso pode ser feito (o código lista os dados de um arquivo na tela). writeln('digite o nome do arquivo para ser listado: '); readln(nome_arquivo); Assign(ListaDeTarefas, nome_arquivo); //Associa variável e arq. Reset(ListaDeTarefas); //Abrir o arquivo while not eof(listadetarefas) do //Enquanto não chegar ao final begin //Lê do arquivo e armazena na variável linha readln(listadetarefas, linha); writeln(linha); //Escreve a variável linha na tela end;

Arquivos randômicos Registro 1 Registro 2 Registro 3... Registro N Campo 1 Campo 2 Campo 3

Arquivos randômicos Um arquivo randômico é organizado com sequências de elementos de um mesmo tipo, geralmente registros. É o tipo de arquivo mais comum em aplicações. O arquivo randômico possibilita navegação entre seus registros de forma aleatória. É possível visitar o primeiro, o último ou o enésimo registro do arquivo diretamente.

Arquivos binários em Pascal FILE of Em linguagem Pascal, o tipo FILE of é utilizado para definir que uma variável irá representar um arquivo binário. type TAlunos = record nome : string; sexo : char; ano_nasc : integer; end; var ArquivoDeInteiros : FILE of Integer; begin CadastroDeAluno : FILE of TAlunos; Campos do registro Registros do Arquivo nome sexo ano_nasc Ana F 1994 Pedro M 1993 Julia F 1984 Saulo M 1988 end.

Gravando dados em arquivos binários Para gravar informações em um arquivo binário é necessário uma variável do mesmo tipo na qual o arquivo é organizado. Os dados são gravados na posição atual do arquivo. var arqalunos : File of TAlunos; alunos : TAlunos; begin Assign(arqAlunos, 'dados.dat'); Rewrite(arqAlunos); alunos.nome := 'Ana'; alunos.sexo := 'F'; alunos.ano_nasc := 1985; write(arqalunos, alunos); close(arqalunos); end;

Recuperando dados de arq. binários Para recuperar informações de um arquivo binário é necessário uma variável do mesmo tipo na qual o arquivo é organizado. var arqalunos : File of TAlunos; alunos : TAlunos; begin Assign(arqAlunos, 'dados.dat'); Reset(arqAlunos); while not eof(arqalunos) do begin read(arqalunos, alunos); writeln(alunos.nome, ', sexo = ', alunos.sexo); end; close(arqalunos); end;

Ponteiro lógico de um arquivo binário O ponteiro lógico indica a posição atual em que o arquivo se encontra (o número do registro). Arquivos binários permitem a movimentação do ponteiro lógico em qualquer direção; O comando seek é utilizado para movimentar o ponteiro um determinado número de posições; O comando FileSize retorna quantas posições possui um arquivo e o comando FilePos retorna a posição atual do ponteiro lógico; Comandos como writeln e readln movimentam automaticamente o ponteiro lógico para a próxima posição.

Acessando posições aleatórias em arquivos binários writeln('o arquivo tem ', FileSize(arqAlunos), ' registros'); writeln('informe o nº do registro para consultar ')'); readln(posicao - 1); //A posição inicial é sempre zero seek(arqalunos, posicao); read(arqalunos, a); writeln('nome: ', a.nome, ', sexo: ', a.sexo); //Para mover o ponteiro lógico do arquivo para o primeiro registro seek(arqalunos, 0); //Para mover o ponteiro lógico para o final do arquivo seek(arqalunos, FileSize(arqAlunos));

Exercícios para fixação http://www.cafw.ufsm.br/~bruno/disciplinas/ling_programacao/exercicios/lista10.html