Este capítulo apresenta as técnicas de manipulação de arquivos texto, binários e suas principais funções de I/O.

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

ESTRUTURA DE DADOS -ARQUIVOS. Prof. Angelo Augusto Frozza, M.Sc.

Lista de Comandos: Arquivo texto e Binário

O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.

9/24/2014. Prof. André Backes

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Arquivos em C. Material da Prof. Ana Eliza

LINGUAGEM C: ARQUIVOS

1/24 FICHEIROS DE TEXTO

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos

Computação Eletrônica. Arquivo

PROG. DE COMPUTADORES II SI Arquivos

Construção de Algoritmos II Aula 04

Laboratório de Introdução à Ciência da Computação I

Algoritmos e Estruturas de Dados II IEC013

Trabalhando com Arquivos

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Computação Eletrônica. Aula 12 Arquivos Texto e Binário. Prof: Luciano Barbosa. CIn.ufpe.br

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Capítulo 6: Arquivos

MC-102 Aula 24 Arquivos em C e Parâmetros do Programa

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

Arquivos. Programação de Computadores I. Natália Batista.

Arquivos O QUE É, COMO LER E MANIPULAR

Texto retirado e adaptado da apostila Curso de Linguagem Pascal, disponível no site (autor: desconhecido).

LINGUAGEM C: ARQUIVOS

Aula 14 Oficina de Programação Tópicos Especiais em C: Arquivos. Profa. Elaine Faria UFU

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Aula de Arquivos. Jesimar da Silva Arantes. Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos, SP

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Outline. 33. Manipulação de arquivos DIM

Estruturas de Dados. Módulo 15 - Arquivos. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

13a. Aula Manipulação de arquivos

= = = = = = = = = = = = = = = =

Operações com Arquivos

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

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Manipulação de arquivos

Python: Entrada e Saída. Claudio Esperança

Introdução à Computação II AULA 08 BCC Noturno - EMA896115B

Sumário. Ficheiros. Ficheiros

Arrays, Criação de Funções, Estruturas e Manipulação de Arquivos.

Tutorial de Turbo Pascal

Arquivos em C. Notas de Aula. Prof. Francisco Rapchan

Programação para Computação 13ª Aula

Arquivos. Arquivos correspondem a unidades de armazenamento, tipicamente gravados em unidades de memória secundária.

UNIVERSIDADE ESTADUAL PAULISTA. Apostila Pascal Ed Prof. Dr. Galeno José de Sena DMA/FEG CAPÍTULO 8

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

INTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO

Introdução a Programação. Manipulando Arquivos em Modo Texto

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

Linguagem C arquivos. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

SSC304 Introdução à Programação Para Engenharias. Arquivos. GE4 Bio

Programação Computacional Aula 17: Manipulação de arquivos

Linguagem de programação: Pascal

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários.

Linguagem de Programação

Fundamentos de Arquivos

Sistemas de Arquivos. (Aula 23)

Algoritmos e Estruturas de Dados I Linguagem C

Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos

Linguagem de Programação C. Arquivos

Métodos de Programação I (2005/2006) 1. Ficheiro (file)

Manipulação de Arquivos em Pascal

USP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

Considere uma máquina que utiliza uma palavra de 10 bits. Suponha o seguinte padrão de bits:

Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Linguagens de Programação

Programação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO

Computação I. Prof. Miguel Elias Mitre Campista.

Arquivos. Introdução à Programação SI1

Análise Semântica e Tratamento de Erros Dependentes de Contexto

Aula Anterior. Decomposição algorítmica (continuação)

Aula 07. Representação da Informação. Prof. Dr. Dilermando Piva Jr.

Métodos Computacionais. Arquivos

Prof. A. G. Silva. 13 de novembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de / 1

Sistemas de Telecomunicações 2003/2004

Arquivos. Fundamentos de Arquivos. Discos X Memória Principal. Memória Secundária x Principal. Informação mantida em memória secundária (externa)

Engenharia Civil e Engenharia Básica Programação de Computadores Wedson Quintanilha da Silva

Descobrindo Lua. Sérgio Queiroz de Medeiros. Campus Party LabLua. Sérgio Queiroz de Medeiros Descobrindo Lua 1

Arquivos. INF1005 Programação I Profa. Simone D.J. Barbosa sala 410 RDC

Sequência de informações binárias armazenadas num dispositivo de armazenamento permanente. Em geral os bits são agrupados em grupos de 8 (1 byte)

Introdução a Programação. Arquivos

Computação Eletronica: Arquivos (Introdução)

LINGUAGEM C: ARRAYS DE CARACTERES: STRINGS

Alocação Dinâmica de Memória - Exercício

Linguagem de Programação

Introdução à Ciência da Computação

Sistema de arquivos. Adriano J. Holanda 24/5/2016

Arquivos de Texto UFOP 1/31

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Computação II MAB EE2/ET2/ER2. Manipulação de Arquivos. Brunno Goldstein.

Introdução ao Pascal. Computação I. Níveis de Linguagens de Programação. Níveis de Linguagens de Programação. Como um Programa é Executado?

Métodos de Programação I Ana Maria de Almeida

ENGENHARIA DE PRODUÇÃO ICC 1 TÉCNICAS DE PROGRAMAÇÃO

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Transcrição:

TRABALHANDO COM ARQUIVOS E DIRETÓRIOS Capítulo 9 Este capítulo apresenta as técnicas de manipulação de arquivos texto, binários e suas principais funções de I/O. ARQUIVOS TEXTO (File of Text) Os Arquivos texto permitem que se armazene strings, nesta seção será apresentado como manipular arquivos texto usando-se as funções e procedimentos do Object Pascal. VARIÁVEIS TEXTFILE Para manipular arquivos é necessário declarar uma variável que representa este arquivo. No caso de um arquivo texto, a variável deve ser do tipo TextFile. Analise a declaração abaixo: MeuArquivoTexto : TextFile; ASSOCIAÇÃO DE ARQUIVO A UMA VARIÁVEL Para manipular um arquivo, deve-se saber seu nome sua localização, com esta informações é possível associar a variável TextFile ao arquivo físico. O procedimento AssignFile( ), faz esta associação. Exemplo: AssignFile(MeuArquivoTexto, C:\Work\Serra\Suporte\Andrea.txt ); NOTA É possível usar nomes longos(win32) para especificar o nome e path do arquivo. ABRIR E FECHAR ARQUIVOS T EXTO Uma vez associado, existem três formas distintas de abrir um arquivo texto, a saber: Rewrite( ) Reset( ) Append( ) Delphi 4 Pag. 122

Ao usar o procedimento Rewrite( ), um arquivo é aberto para escrita, caso o arquivo físico já exista, este será destruído e um novo arquivo de mesmo nome será criado. Reset( ), abre um arquivo somente para leitura, enquanto que Append( ), abre um arquivo pré-existente tanta para leitura quanto escrita sem causar a sua destruição. Para fechar um arquivo texto, usa-se o procedimento CloseFile( ). O exemplo a seguir ilustra a abertura de um arquivo para leitura e armazena seu conteúdo em um componente TMemo. MeuTexto : TextFile; Line : WideString; AssignFile(MeuTexto, 'C:\Work\Serra\Operas\BarbeiroDeSevilha.txt'); Reset(MeuTexto); While Not EOF (MeuTexto) do Readln(MeuTexto, Line); Memo1.Lines.Add(Line); CloseFile(MeuTexto); NOTA A procedure Reset( ) também abre arquivos binários no modo read-write ARQUIVOS TIPADOS (File of Record) Para armazenar estruturas de dados em um arquivo, faz-se necessário o uso de Arquivos Tipados, que são arquivos especialmente definidos para armazenar dados de tipos pré-definidos. O fato de armazenarem arquivos de um único tipo, torna sua utilização mais eficiente que os arquivos texto. Os arquivos tipados possuem a estrutura do tipo File of Record. DEFINIÇÃO DE ARQUIVOS TIPADOS O exemplo abaixo ilustra a definição de arquivos que trabalham com records. Type TPessoaRec = Record PrimeiroNome : String[20]; UltimoNome : String[20]; Sexo : Char; Nascimento : TDateTime; PessoaRec : TPessoaRec; DataFile : File of TPessoaRec; Delphi 4 Pag. 123

A declaração DataFile : File of TPessoaRec especifica o que o arquivo DataFile é Tipado e armazenará diversos registros com a estrutura definida pelo record PessoaRec. LENDO E ESCREVENDO EM ARQUIVOS TIPADOS Ler e escrever em arquivos tipados é uma tarefa extremamente simples, basta usar as funções Read e Write com as variáveis desejadas. Deve-se ainda passar como parâmetro o nome da variável do tipo file que representa o arquivo. O exemplo abaixo mostra como escrever e ler valores inteiros de um arquivo. MeuArquivoTipado : File of Integer; Index : Integer; AI : Array[0..9] of Integer; AssignFile(MeuArquivoTipado, 'C:\Pessoal.dat'); Rewrite(MeuArquivoTipado); For Index := 0 to 9 do Write(MeuArquivoTipado, AI[Index]); CloseFile(MeuArquivoTipado); ARQUIVOS BINÁRIOS (Não Tipados) Até agora, vimos como manipular arquivos texto e arquivos tipados. Arquivos texto são usados para armazenar seqüências de caracteres ASCII e arquivos tipados armazenam dados onde cada campo pode ser de um tipo diferente, em ambos, existe uma estruturação dos arquivos. Arquivos não-tipados ou Binários, são tratados como um grande conjunto de bytes sem nenhuma estruturação. Ao ler ou gravar em um arquivo binário, nenhuma verificação é feita. DEFININDO ARQUIVOS BINÁRIOS A declaração de uma variável para representa um arquivo binário, é a mais simples de todas, analise o exemplo abaixo: F : File; Este tipo de arquivo é usado quando se deseja gravar dados em um arquivo com formato proprietário. Por default, um arquivo é uma seqüência de blocos, onde cada um dos blocos possui 128 bytes. Delphi 4 Pag. 124

LENDO E ESCREVENDO EM ARQUIVOS BINÁRIOS Para efetuar as operações de leitura e escrita em arquivos binários, usam-se os procedimentos BlockRead( ) e BlockWrite( ), sua respectivas declarações são: Procedure BlockRead( var F: File; var Buf; Count Integer; var Result : Integer); Procedure BlockWrite( var F: File; var Buf; Count Integer; var Result : Integer); Os procedimentos BlockRead( ) e BlockWrite( ), Possuem três parâmetros: o primeiro é a variável de arquivo F, o segundo a variável Buf, que armazena os dados que serão lidos/gravados no arquivo, o terceiro parâmetro é a variável Count que contém o número de registros que serão lidos do arquivo. O parâmetro Result é opcional e contém o número de registros que foram lidos do arquivo durante a última operação de leitura. Na operação de escrita, Result contém o número de registros que serão gravados. DIRETÓRIOS E DRIVES Existem inúmeras tarefas que podem ser realizadas fazendo-se uso de procedimentos de acesso e verificação de drives e diretórios. OBTENDO A LISTA DE DRIVES E SEUS TIPOS Para obter a lista de drives disponíveis no sistema. Usa-se a API GetDriveType( ) da Win32, esta função retorna os parâmetros da tabela abaixo: Valor Retornado Significado 0 Tipo de drive indeterminado 1 O diretório raiz não existe DRIVE_REMOVABLE Drive removível DRIVE_FIXED Drive não removível DRIVE_REMOTE Drive de rede DRIVE_CDROM Drive de CD-ROM DRIVE_RAMDISK RAMDisk drive Analise o exemplo abaixo: I, Dtype: Integer; C,DriveString : String; For I:= 69 to 90 do C:=Chr(i) + ':\ ' ; Dtype := GetDriveType(Pchar(C)); Delphi 4 Pag. 125

Case Dtype Of 0 : DriveString := C + 'O tipo do drive não pode ser determinado'; 1: DriveString := C + 'O Diretório Raiz não existe'; DRIVE_REMOVABLE : DriveString := C + 'O disco pode ser removido do drive'; DRIVE_FIXED : DriveString := C + 'O Disco não pode ser removido do drive'; DRIVE_REMOTE : DriveString := C + 'Drive de rede'; DRIVE_CDROM : DriveString := C + 'O Drive é de CD-ROM'; DRIVE_RAMDISK : DriveString := C + ' O drive é um RAM disk drive'; If Not ((Dtype=0) or (Dtype=1) Then ListBox1.Items.AddObject(DriveString, Pointer(I)); OBTENDO O DIRETÓRIO DO WINDOWS Para obter a localização do diretório do Windows, usa-se a API GetWindowsDirectory() da Win32, esta função está definida como: Function GetWindowsDirectory(lpBuffer:Pchar; Usize:UINT): UINT; O primeiro parâmetro é uma string null-terminated e armazena a localização do diretório do Windows. O segundo, indica o tamanho do buffer usado para armazenar o path completo. O código abaixo ilustra como usar a função. WDir : String; SetLength (Wdir, 144); If GetWindowsDirectory (Pchar (WDir), 144) <> 0 Then ShowMessage(WDir) Else ShowMessage('Erro: '+ IntToStr(GetLastError)); OBTENDO O DIRETÓRIO DO SISTEMA Para obter a localização do diretório do sistema, usa -se a API GetSystemDirectory( ) da Win32, esta função funciona de maneira análoga a função GetWindowsDirectory( ), exceto pelo fato de retornar o path completo do diretório do sistema. O trecho de código abaixo ilustra o uso da função. SDir : String; SetLength (Sdir, 144); If GetSystemDirectory (Pchar (SDir), 144) <> 0 Then Delphi 4 Pag. 126

ShowMessage(SDir) Else ShowMessage('Erro: '+ IntToStr(GetLastError)); OBTENDO O DIRETÓRIO CORRENTE Algumas vezes é necessário obter a localização do diretório corrente; usa-se a função GetCurrentDirectory( ) da Win32, esta função é análoga as funções anteriores, exceto pelo fato dos parâmetros estarem invertidos. O trecho de código ilustra o uso desta função. CDir : String; SetLength (CDir, 144); If GetCurrentDirectory (Pchar (CDir), 144) <> 0 Then ShowMessage(CDir) Else ShowMessage('Erro: '+ IntToStr(GetLastError)); Delphi 4 Pag. 127