Baixe o app para aproveitar ainda mais
Prévia do material em texto
Laboratório de Programação Operações com arquivos - Parte III Pascal Prof. Daniel Vecchiato daniel@ic.ufmt.br terça-feira, 12 de março de 2013 Conteúdo Abordado • Tipo de dados; • Algoritmos em C e Pascal; • Estruturas de controle; • Estruturas de repetição; • Variáveis compostas homogêneas; • Variáveis compostas heterogêneas; • Modularização: Blocos e Subprogramas; • Parâmetros e formas de passagem; • Recursividade. terça-feira, 12 de março de 2013 Conteúdo a ser abordado • Operações com arquivos; • Variáveis dinâmicas; • Estruturas de dados dinâmicas: listas lineares; • Métodos simples de ordenação e pesquisa de dados. terça-feira, 12 de março de 2013 Agenda • Revisão; • Manipulação de arquivos em Pascal; • Exercícios; • Resumo. terça-feira, 12 de março de 2013 Revisão • Quais funções são utilizadas para ler/ escrever em um arquivo texto em C? • Quais funções são utilizadas para ler/ escrever em um arquivo binário em C? • Qual função é utilizada para acesso não sequencial em C? terça-feira, 12 de março de 2013 Revisão Arquivos Textos em C • Crie um ponteiro para o arquivo: FILE *parq; • Abra o arquivo de modo apropriado associando-o a um ponteiro: • parq = fopen(“nomeArquivo”, “modo”); • Leia dados do arquivo na memória usando fscanf: • fscanf(parq, string-tipo-variavel, &variavel); • Dados podem ser lidos até EOF. • Altere dados se necessário e escreva-o novamente em arquivo: • fprintf(parq, string-tipo-variavel, variavel); • Todo arquivo deve ser fechado: • fclose(parq); terça-feira, 12 de março de 2013 Revisão Arquivos Binários em C • Crie um ponteiro para o arquivo: FILE *parq; • Abra o arquivo de modo apropriado associando-o a um ponteiro: • parq = fopen(“nomeArquivo”, “modo”); • Leia dados do arquivo na memória usando fread: • fread(*pt-mem, tamanho, qtde, *arquivo); • Escreva dados no arquivo usando fwrite: • fwrite(*pt-mem, tamanho, qtde, *arquivo); • Todo arquivo deve ser fechado: • fclose(parq). terça-feira, 12 de março de 2013 Revisão Arquivos Binários em C • Para acesso não sequencial use fseek: • fseek(*arquivo, num_bytes, origem); • O deslocamento pode ser relativo ao: • inicio do arquivo (SEEK_SET); • ponto atual (SEEK_CUR); • final do arquivo (SEEK_END). terça-feira, 12 de março de 2013 Declaração de Arquivos • Para trabalhar com arquivos em pascal é necessário criar novos tipos de dados: terça-feira, 12 de março de 2013 Exemplo de Declaração de Arquivos terça-feira, 12 de março de 2013 Exemplo de Declaração de Arquivos terça-feira, 12 de março de 2013 Associando váriaveis a arquivos • Para associar variáveis e arquivos físicos utiliza-se o comando ASSIGN • Exemplos: terça-feira, 12 de março de 2013 Criando arquivos • Para criar um novo arquivo utiliza-se a função REWRITE. • Sintaxe: • Exemplo: *Se o arquivo existir todos os seus dados serão apagados terça-feira, 12 de março de 2013 Abrindo arquivos existentes • Para abrir um arquivo utiliza-se o comando RESET. • Sintaxe: • Exemplo: terça-feira, 12 de março de 2013 Abrindo arquivos existentes • Existe uma diretiva de compilação para verificação de erros de entrada e/ou saida: {$I} • Esta diretiva retorna um código de erro em uma função chamada IOResult. terça-feira, 12 de março de 2013 Exemplo de Abertura de Arquivo terça-feira, 12 de março de 2013 Fechando arquivos • Para fechar um arquivo aberto por RESET utiliza-se o comando CLOSE. • Sintaxe: • Exemplo: terça-feira, 12 de março de 2013 Removendo arquivos • Para remover um arquivo utiliza-se a função ERASE. • Sintaxe: • Exemplo: terça-feira, 12 de março de 2013 Renomeando Arquivos • Para renomear um arquivo utiliza-se o comando RENAME. • Sintaxe: • Exemplo: terça-feira, 12 de março de 2013 Exercício • X - Faça um programa para criar um arquivo chamados ALUNOS.DAT, no qual cada registro será composto pelos seguintes campos: número, nome, curso, nota1 e nota2. terça-feira, 12 de março de 2013 Lendo arquivos • Para ler arquivos utiliza-se o comando READ. • Sintaxe: • Exemplo: terça-feira, 12 de março de 2013 Escrevendo em arquivos • Para escrever em arquivos, utiliza-se o comando WRITE. • Sintaxe: • Exemplo: terça-feira, 12 de março de 2013 Obtendo número de registros de um Arquivo • Para obter o número de registros de um arquivo, utiliza-se a função FILESIZE. • Sintaxe: • Exemplo: terça-feira, 12 de março de 2013 Exercício • XI - Faça um programa para incluir alunos no arquivo criado no Exercício X, lembrando que não pode existir dois alunos com o mesmo número. terça-feira, 12 de março de 2013 Movimentando ponteiro de arquivo • Para movimentar o ponteiro de arquivo utiliza-se o comando SEEK. • Sintaxe: • Exemplo: terça-feira, 12 de março de 2013 Exercício • XII - Faça um programa para consultar o nome de todos os alunos cadastrados no arquivo pelo arquivo gerado no exercício X. terça-feira, 12 de março de 2013 Obtendo posição do ponteiro em um Arquivo • Para obter a posição do ponteiro em um Arquivo, utiliza-se a função FILEPOS. • Sintaxe: • Exemplo: terça-feira, 12 de março de 2013 Verificando o final do arquivo • Para verificar se o ponteiro do arquivo chegou ao fim, utiliza-se o comando EOF. • Sintaxe: • Exemplo: terça-feira, 12 de março de 2013 Exercício • XIII - Faça um programa para imprimir o nome de todos os alunos de um determinado curso. terça-feira, 12 de março de 2013 Resumo Nome Uso ASSIGN Vincular arquivo à variável. REWRITE Criar arquivo. Caso o arquivo exista seus dados serão apagados. RESET Abrir arquivo. CLOSE Fechar arquivo. Efetua a gravação dos dados. ERASE Apaga o arquivo RENAME Renomeia o arquivo. READ Ler de arquivo. WRITE Escrever em arquivo. SEEK Movimentar ponteiro do arquivo. FILESIZE Obter número de registros de um arquivo. FILEPOS Obter a posição do ponteiro do arquivo. EOF Verifica final do arquivo terça-feira, 12 de março de 2013 Arquivo Texto • Pascal também aceita escrita e leitura de arquivos texto através das funções writeln e readln. terça-feira, 12 de março de 2013 Escrita de arquivo texto terça-feira, 12 de março de 2013 Leitura de arquivo texto terça-feira, 12 de março de 2013 Exercícios • XIV - Faça um programa para criar um arquivo chamado VENDAS.DAT, em que cada registro será composto por codigo_vendedor, nome_vendedor, valor_venda e mes. • XV - Faça um programa para cadastrar vendedor no arquivo VENDAS.DAT, lembre- se que não pode existir vendedores com o mesmo código e o mesmo mes de venda. terça-feira, 12 de março de 2013 Exercícios • XVI - Faça um programa para alterar o valor de uma venda cadastrada no exercício anterior. • XVII - Faça um programa para consultar o valor de uma venda de um vendedor em um dado certo mes. terça-feira, 12 de março de 2013
Compartilhar