Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Introdução Ciência da Computação - Arquivos, Notas de estudo de Engenharia Mecânica

Introdução Ciência da Computação - Arquivos

Tipologia: Notas de estudo

2010

Compartilhado em 19/08/2010

jedi-master-10
jedi-master-10 🇧🇷

5

(2)

8 documentos

1 / 9

Documentos relacionados


Pré-visualização parcial do texto

Baixe Introdução Ciência da Computação - Arquivos e outras Notas de estudo em PDF para Engenharia Mecânica, somente na Docsity! Introdução à Ciência da Computação - Notas de Aula 5 Capítulo 5 – Arquivos 0. Sumário 1. Introdução 2. Arquivos binários 2.1. Conceitos 2.2 Comandos e funções para uso dos arquivos binários 2.3. Exemplos de Aplicação 3. Arquivos tipo text 3.1. Conceitos 3.2 Comandos e funções para uso dos arquivos tipo text 3.3. Exemplos de Aplicação 1. Introdução Arquivos são conjuntos de dados armazenados em memória secundária, ou seja, em disquetes, HD, CD, pen-drive, etc. Os arquivos são necessários em várias situações, como por exemplo, quando os dados não cabem na memória principal, ou quando se pretende armazenar os dados mesmo com o computador desligado, ou, ainda, para facilitar a entrada e saída de dados quando estes são muito numerosos. Na linguagem Pascal, os arquivos são seqüenciais, isto é, são formados por uma seqüência de elementos de mesmo tipo (qualquer tipo, com exceção do próprio tipo que define os arquivos). O programa não impõe limite para o tamanho da seqüência de dados. Assim sendo, o final do arquivo é identificado por um símbolo especial (neste texto, representado no desenho por um ‘*’). O acesso só é permitido a um elemento de cada vez. Os arquivos podem ser usados para leitura ou para gravação, mas não para as duas operações ao mesmo tempo. Como o acesso é seqüencial, cada vez que se deseja ler algo do arquivo, é necessário iniciar a leitura a partir do primeiro elemento. A mesma regra vale para a gravação. Em geral, nas implementações da linguagem Pascal, há comandos que facilitam a leitura e a gravação de um arquivo, descaracterizando-o como arquivo seqüencial. Neste curso esses comandos (por exemplo: append, seek, etc.) não serão tratados. Portanto, todos os programas são aqui desenvolvidos utilizando apenas os comandos do Pascal padrão. 2. Arquivos binários 2.1. Conceitos A forma de se definir um arquivo binário é: file of tipo do elemento. Por exemplo: a) Var arq1 : file of real; Neste caso, arq1 é o nome da variável que, no programa, identifica o arquivo. Cada elemento do arquivo neste caso é um número real. 1 PAGE 1 b) Type arquivo : file of string; Var arq1 : arquivo; Neste caso, o elemento básico constituinte do arquivo é um string. Portanto, o programa deve ler ou gravar um string de cada vez. Note que na definição foi utilizada a palavra reservada Type, para definir um padrão de arquivo. Este recurso é vantajoso quando se necessita definir o mesmo tipo de arquivos várias vezes, em locais diferentes no programa. 2.2 Comandos e funções para uso dos arquivos binários Os comandos e funções básicos para o tratamento de arquivos binários são: a) assign (nomedavariávelarquivo, nomedoarquivo) Este comando associa o nome da variável tipo file, definida dentro do programa, com o nome do arquivo na memória secundária. exemplo1: assign (arq1, ‘c:\us\fulano\notas.cic’); Depois deste comando, a variável arq1 fica associada ao arquivo notas.cic, que está no path especificado por c:\us\fulano. Se o path não for especificado, o sistema procura o arquivo na pasta em que o programa está rodando. Esta associação fica válida enquanto não houver outro comando assign no programa. exemplo 2: Var nomearq : string; .... writeln (‘entre com o nome do arquivo’); readln (nomearq); assign (arq1, nomearq); .... Neste caso, a variável arq1 fica associada ao arquivo cujo nome é escolhido pelo usuário, em tempo de execução, através do string nomearq. Esta forma de utilização dá mais flexibilidade ao programa, que pode ser usado com arquivos diferentes, à escolha do usuário. b) reset (nomedavariávelarquivo) Este comando prepara (abre) o arquivo para leitura, posicionando um cursor sobre o primeiro elemento do arquivo. 2 PAGE 1 soma := 0; repeat read (arq, n); cont := cont + 1; soma := soma + n; until eof (arq); media := soma / cont; writeln (‘ média: ’, media ); end. Obs. Este programa pode provocar um erro se o arquivo de dados estiver vazio, pois a estrutura de repetição repeat-until primeiramente lê e depois verifica se o arquivo está vazio. O exemplo seguinte utiliza a estrutura while-do: Program Exemplo4; Var arq1 : file of integer; nome : string; n, cont, soma : integer; media : real; begin writeln (‘entre com o nome do arquivo’); readln (nome); assign (arq1, nome); reset (arq1); cont := 0; soma := 0; while not eof (arq) do begin read (arq, n); cont := cont + 1; soma := soma + n; end; if cont = 0 then writeln (‘o arquivo está vazio’ ) else begin media := soma / cont; writeln (‘ média: ’, media ); end; end. 3. Arquivos tipo text 3.1. Conceitos Um arquivo tipo text armazena caracteres no formato ASCII. É, portanto, equivalente a um file of char, mas com algumas propriedades que facilitam sua utilização. Enquanto no arquivo binário é permitida a gravação e a leitura apenas de variáveis de um tipo, que é o tipo do elemento constituinte do arquivo, no arquivo tipo text pode-se gravar ou ler variáveis de tipo integer, real, char e string. 5 PAGE 1 Todos os comandos e funções vistos para arquivos binários valem para os arquivo tipo text. Os arquivos tipo text são estruturados em linhas. Além da marca de final de arquivo, podem ter também no seu interior marcas de final de linhas. Esta propriedade permite o uso dos seguintes comandos e funções: a) readln (nomedavariávelarquivo, lista de variáveis) Este comando lê as variáveis da lista e pula para a próxima linha do arquivo. É um comando obrigatório para a mudança de linha na leitura de um arquivo text. b) writeln (nomedavariávelarquivo, lista de variáveis) Este comando grava as variáveis da lista e coloca uma marca de final de linha, ou seja, inicia uma nova linha no arquivo. c) eoln (nomedavariávelarquivo) Esta função retorna true se o cursor estiver no final de uma linha do arquivo, e false em caso contrário. Observação importante 1: características dos dois tipos de arquivo (binário e text) Os arquivos tipo text são mais lentos e ocupam mais espaço que os arquivos binários, mas permitem uma visualização mais fácil de seu conteúdo. Para conhecer o conteúdo de um arquivo binário é preciso um programa que consiga ler o arquivo, e para isso é preciso saber como ele foi definido na gravação. O arquivo tipo text pode ser visualizado em qualquer editor de texto (seu conteúdo são caracteres em código ASCII), incluído o próprio ambiente de programação do Pascal. Pode ser construído também em editores simples, como por exemplo o Bloco de Notas do Windows. A construção de arquivos text em editores de texto como o Word podem ocasionar erros, pois esses editores colocam marcas especiais no texto, que o Pascal não identifica. Observação importante 2: precauções com o arquivo text Na leitura e gravação dos arquivos tipo text devem ser tomados alguns cuidados: a) a ordem dos tipos das variáveis deve ser a mesma, na gravação e na leitura; b) entre duas variáveis numéricas deve haver ao menos um espaço branco, e podem-se deixar espaços brancos à vontade; c) na leitura de uma string, o número de caracteres lido corresponde ao número usado na definição da variável ( n, para string [n ]); d) depois de uma variável string e antes de uma numérica é facultativo o uso de espaços brancos; e) depois de uma variável numérica e antes de uma string deve haver ao menos um espaço branco, mas atenção: esse espaço vai fazer parte do conteúdo da string que vai ser lida; 6 PAGE 1 f) entre duas variáveis string não deve haver espaço branco; se houver, esses espaços vão fazer parte do conteúdo da segunda string lida g) na gravação de um arquivo text valem as regras de formatação vistas no capítulo 2, ítem 7. h) a definição de uma variável correspondente a um arquivo text se faz simplesmente usando a palavra reservada text. Por exemplo: Var arq1 : text; 3.2 Exemplos de Aplicação 1. Programa para ler um arquivo text contendo letras e algarismos e gravar outros dois arquivos: o primeiro, tipo text, contendo as letras, e o segundo, arquivo binário contendo os números inteiros correspondentes aos algarismos. Program Exemplo1; Var arq1, arq2 : text; arq3 : file of integer; c : char; x, erro : integer; nome : string; begin writeln (‘entre nome do arquivo entrada’); readln (nome); assign (arq1, nome); writeln (‘entre nome do arquivo de letras’); readln (nome); assign (arq2, nome); writeln (‘entre nome do arquivo de números’); readln (nome); assign (arq3, nome); reset (arq1); rewrite (arq2); rewrite (arq3); while not eof (arq1) do begin read (arq1, c); val (c, x, erro); if erro = 0 then write (arq3, x) else write (arq2, c); end; close (arq2); close (arq3); end. obs: o comando val tem três argumentos: o primeiro é um caractere ou uma string, o segundo é um inteiro ou real, e o terceiro é um inteiro. O programa verifica se o conteúdo do caractere (ou string) corresponde a um número inteiro (ou real). No caso positivo, o valor inteiro (ou real) é repassado ao segundo argumento e o terceiro argumento retorna zero. No caso negativo, o terceiro argumento retorna um valor diferente de zero 7 PAGE 1
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved