Menu English Ukrainian Russo Início

Biblioteca técnica gratuita para amadores e profissionais Biblioteca técnica gratuita


Информатика и информационные технологии. Динамическая память (конспект лекций)

Notas de aula, folhas de dicas

Diretório / Notas de aula, folhas de dicas

Comentários do artigo Comentários do artigo

Índice (expandir)

PALESTRA Nº 6. Arquivos

1. Arquivos. Operações de arquivo

A introdução do tipo de arquivo na linguagem Pascal é causada pela necessidade de fornecer a capacidade de trabalhar com dispositivos de computador periféricos (externos) projetados para entrada, saída e armazenamento de dados.

O tipo de dados do arquivo (ou arquivo) define uma coleção ordenada de um número arbitrário de componentes do mesmo tipo. A propriedade comum de uma matriz, conjunto e registro é que o número de seus componentes é determinado no estágio de escrita do programa, enquanto o número de componentes de arquivo no texto do programa não é determinado e pode ser arbitrário.

Ao trabalhar com arquivos, são realizadas operações de E/S. Uma operação de entrada significa transferir dados de um dispositivo externo (de um arquivo de entrada) para a memória principal de um computador, uma operação de saída é uma transferência de dados da memória principal para um dispositivo externo (para um arquivo de saída). Os arquivos em dispositivos externos geralmente são chamados de arquivos físicos. Seus nomes são determinados pelo sistema operacional.

Em programas Pascal, os nomes dos arquivos são especificados usando strings. Para trabalhar com arquivos no programa, você deve definir uma variável de arquivo. Pascal suporta três tipos de arquivos: arquivos de texto, arquivos componentes, arquivos não digitados.

As variáveis ​​de arquivo que são declaradas em um programa são chamadas de arquivos lógicos. Todos os procedimentos e funções básicos que fornecem E/S de dados funcionam apenas com arquivos lógicos. O arquivo físico deve ser associado ao arquivo lógico antes que os procedimentos de abertura do arquivo possam ser executados.

Arquivos de texto

Um lugar especial na linguagem Pascal é ocupado por arquivos de texto, cujos componentes são do tipo caractere. Para descrever arquivos de texto, a linguagem define o tipo padrão Texto:

var TF1, TF2: Texto;

Os arquivos de texto são uma sequência de linhas e as linhas são uma sequência de caracteres. As linhas são de comprimento variável, cada linha termina com um terminador de linha.

Arquivos de componentes

Um componente ou arquivo tipado é um arquivo com o tipo declarado de seus componentes. Os arquivos de componentes consistem em representações de máquina de valores de variáveis; eles armazenam dados da mesma forma que a memória do computador.

A descrição dos valores do tipo de arquivo é:

tipo M = Arquivo de T;

onde M é o nome do tipo de arquivo;

T - tipo de componente.

Os componentes de arquivo podem ser todos os tipos escalares e de tipos estruturados - matrizes, conjuntos, registros. Em quase todas as implementações específicas da linguagem Pascal, a construção "arquivo de arquivos" não é permitida.

Todas as operações em arquivos de componentes são executadas usando procedimentos padrão.

Escreva(f,X1,X2,...XK)

Arquivos não digitados

Arquivos não digitados permitem que você grave seções arbitrárias da memória do computador no disco e as leia do disco para a memória. Os arquivos não tipados são descritos da seguinte forma:

var f: Arquivo;

Agora listamos os procedimentos e funções para trabalhar com diferentes tipos de arquivos.

1. Procedimento Assign(var F; FileName: String);

O procedimento AssignFile mapeia um nome de arquivo externo para uma variável de arquivo.

F é uma variável de arquivo de qualquer tipo de arquivo, FileName é uma expressão String ou uma expressão PChar se a sintaxe estendida for permitida. Todas as outras operações com F são realizadas com um arquivo externo.

Você não pode usar um procedimento com uma variável de arquivo já aberta.

2. Procedimento Fechar(varF);

O procedimento quebra o vínculo entre a variável de arquivo e o arquivo de disco externo e fecha o arquivo.

F é uma variável de arquivo de qualquer tipo de arquivo, aberta pelos procedimentos Reset, Rewrite ou Append. O arquivo externo associado a F é totalmente modificado e então fechado, liberando o descritor de arquivo para reutilização.

A diretiva {SI+} permite tratar erros durante a execução do programa usando tratamento de exceção. Com a diretiva {$1-} desativada, você deve usar IOResult para verificar erros de E/S.

3.Função Eof(var F): Booleana;

{Arquivos digitados ou não digitados}

Função Eof[(var F: Text)]: Booleana;

{arquivos de texto}

Verifica se a posição atual do arquivo é o final do arquivo.

Eof(F) retorna True se a posição atual do arquivo for após o último caractere do arquivo ou se o arquivo estiver vazio; caso contrário, Eof(F) retornará False.

A diretiva {SI+} permite lidar com erros durante a execução do programa usando tratamento de exceção. Com a diretiva {SI-} desativada, você deve usar IOResult para verificar erros de E/S.

4. Apagar Procedimento (var F);

Exclui o arquivo externo associado a F.

F é uma variável de arquivo de qualquer tipo de arquivo.

Antes de chamar o procedimento Erase, o arquivo deve ser fechado.

A diretiva {SI+} permite lidar com erros durante a execução do programa usando tratamento de exceção. Com a diretiva {SI-} desativada, você deve usar IOResult para verificar erros de E/S.

5. Função FileSize(var F): Integer;

Retorna o tamanho em bytes do arquivo F No entanto, se F for um arquivo digitado, FileSize retornará o número de registros no arquivo. O arquivo deve ser aberto antes de usar a função FileSize. Se o arquivo estiver vazio, FileSize(F) retornará zero. F é uma variável de qualquer tipo de arquivo.

6.Função FilePos(var F): LongInt;

Retorna a posição atual de um arquivo dentro de um arquivo.

Antes de usar a função FilePos, o arquivo deve estar aberto. A função FilePos não é usada com arquivos de texto. F é uma variável de qualquer tipo de arquivo, exceto o tipo Texto.

7. Procedimento Reset(var F [: File; RecSize: Word]);

Abre um arquivo existente.

F é uma variável de qualquer tipo de arquivo associado a um arquivo externo usando AssignFile. RecSize é uma expressão opcional que é usada se F for um arquivo sem tipo. Se F for um arquivo sem tipo, RecSize determinará o tamanho do registro usado ao transferir dados. Se RecSize for omitido, o tamanho do registro padrão será de 128 bytes.

O procedimento de Redefinição abre um arquivo externo existente associado à variável de arquivo F. Se não houver nenhum arquivo externo com esse nome, ocorrerá um erro em tempo de execução. Se o arquivo associado a F já estiver aberto, primeiro ele será fechado e depois reaberto. A posição atual do arquivo é definida para o início do arquivo.

8. Procedimento Reescrever(var F: Arquivo [; Recsize: Word]);

Cria e abre um novo arquivo.

F é uma variável de qualquer tipo de arquivo associado a um arquivo externo usando AssignFile. RecSize é uma expressão opcional que é usada se F for um arquivo sem tipo. Se F for um arquivo sem tipo, RecSize determinará o tamanho do registro usado ao transferir dados. Se RecSize for omitido, o tamanho do registro padrão será de 128 bytes.

O procedimento Rewrite cria um novo arquivo externo com o nome associado a F. Se já existir um arquivo externo com o mesmo nome, ele é excluído e um novo arquivo vazio é criado.

9. Procura de Procedimento(var F; N: LongInt);

Move a posição atual do arquivo para o componente especificado. Você só pode usar o procedimento com arquivos abertos digitados ou não digitados.

A posição atual do arquivo F é movida para o número N. O número do primeiro componente do arquivo é 0.

A instrução Seek(F, FileSize(F)) move a posição do arquivo atual para o final do arquivo.

10. Anexo de Procedimento(var F: Texto);

Abre um arquivo de texto existente para anexar informações ao final do arquivo (anexar).

Se um arquivo externo com o nome fornecido não existir, ocorrerá um erro em tempo de execução. Se o arquivo F já estiver aberto, ele fecha e reabre. A posição atual do arquivo é definida para o final do arquivo.

11.Função Eoln[(var F: Text)]: Booleano;

Verifica se a posição atual do arquivo é o final de uma linha em um arquivo de texto.

Eoln(F) retorna True se a posição atual do arquivo estiver no final de uma linha ou arquivo; caso contrário, Eoln(F) retornará Falso.

12. Procedimento Leitura(F, V1 [, V2,..., Vn]);

{Arquivos digitados e não digitados}

Procedimento Ler([var F: Texto;] V1 [, V2,..., Vn]);

{arquivos de texto}

Para arquivos digitados, o procedimento lê o componente do arquivo em uma variável. Em cada leitura, a posição atual no arquivo avança para o próximo elemento.

Para arquivos de texto, um ou mais valores são lidos em uma ou mais variáveis.

Com variáveis ​​String, Read lê todos os caracteres até (mas não incluindo) o próximo marcador de fim de linha, ou até que Eof(F) seja avaliado como True. A cadeia de caracteres resultante é atribuída à variável.

No caso de uma variável do tipo inteiro ou real, o procedimento aguarda uma sequência de caracteres que formam um número de acordo com as regras da sintaxe Pascal. A leitura pára quando o primeiro espaço, tabulação ou fim de linha é encontrado ou quando Eof(F) é avaliado como Verdadeiro. Se a string numérica não corresponder ao formato esperado, ocorrerá um erro de E/S.

13. Procedimento Readln([var F: Texto;] V1 [, V2..., Vn]);

É uma extensão do procedimento Read e é definido para arquivos de texto. Lê uma sequência de caracteres no arquivo, incluindo o marcador de fim de linha, e move para o início da próxima linha. Chamar a função Readln(F) sem parâmetros move a posição atual do arquivo para o início da próxima linha, se houver, caso contrário, salta para o final do arquivo.

14. Função SeekEof[(var F: Text)]: Booleano;

Retorna o final do arquivo e só pode ser usado para arquivos de texto abertos. Normalmente usado para ler valores numéricos de arquivos de texto.

15. Função SeekEoln[(var F: Text)]: Booleano;

Retorna o terminador de linha em um arquivo e só pode ser usado para arquivos de texto abertos. Normalmente usado para ler valores numéricos de arquivos de texto.

16. Procedimento Escrever([var F: Texto;] P1 [, P2,..., Pn]);

{arquivos de texto}

Grava um ou mais valores em um arquivo de texto.

Cada parâmetro de entrada deve ser do tipo Char, um dos tipos inteiros (Byte, ShortInt, Word, Longint, Cardinal), um dos tipos de ponto flutuante (Single, Real, Double, Extended, Currency), um dos tipos string ( PChar, AisiString , ShortString) ou um dos tipos booleanos (Boolean, Bool).

Procedimento Escrever(F, V1,..., Vn);

{Arquivos digitados}

Grava uma variável em um componente de arquivo. As variáveis ​​VI...., Vn devem ser do mesmo tipo que os elementos do arquivo. Cada vez que uma variável é escrita, a posição atual no arquivo é movida para o próximo elemento.

17. Procedimento Writeln([var F: Texto;] [P1, P2,..., Pn]);

{arquivos de texto}

Executa uma operação de gravação e, em seguida, coloca um marcador de fim de linha no arquivo.

Chamar Writeln(F) sem parâmetros grava um marcador de fim de linha no arquivo. O arquivo deve estar aberto para saída.

2. Módulos. Tipos de módulos

Um módulo (1Ж1Т) em Pascal é uma biblioteca de sub-rotinas especialmente projetada. Um módulo, ao contrário de um programa, não pode ser lançado para execução por conta própria, ele só pode participar da construção de programas e outros módulos. Os módulos permitem que você crie bibliotecas pessoais de procedimentos e funções e construa programas de praticamente qualquer tamanho.

Um módulo em Pascal é uma unidade de programa armazenada separadamente e compilada independentemente. Em geral, um módulo é uma coleção de recursos de software destinados ao uso por outros programas. Os recursos do programa são entendidos como quaisquer elementos da linguagem Pascal: constantes, tipos, variáveis, sub-rotinas. O módulo em si não é um programa executável, seus elementos são usados ​​por outras unidades de programa.

Todos os elementos do programa do módulo podem ser divididos em duas partes:

1) elementos de programa destinados ao uso por outros programas ou módulos, tais elementos são chamados de visíveis fora do módulo;

2) elementos de software que são necessários apenas para o funcionamento do próprio módulo, são chamados de invisíveis (ou ocultos).

De acordo com isso, o módulo, além do cabeçalho, contém três partes principais, denominadas interface, executável e inicializada.

Em geral, um módulo tem a seguinte estrutura:

unidade <nome do módulo>; {título do módulo}

interface

{descrição dos elementos de programa visíveis do módulo}

implementação

{descrição dos elementos de programação ocultos do módulo}

começar

{instruções de inicialização do elemento do módulo}

final.

Em um caso particular, o módulo não pode conter uma parte de implementação e uma parte de inicialização, então a estrutura do módulo será a seguinte:

unidade <nome do módulo>; {título do módulo}

interface

{descrição dos elementos de programa visíveis do módulo}

implementação

final.

A utilização de procedimentos e funções em módulos tem suas peculiaridades. O cabeçalho da sub-rotina contém todas as informações necessárias para chamá-la: nome, lista e tipo de parâmetros, tipo de resultado para funções. Essas informações devem estar disponíveis para outros programas e módulos. Por outro lado, o texto de uma sub-rotina que implementa seu algoritmo não pode ser utilizado por outros programas e módulos. Portanto, os cabeçalhos de procedimentos e funções são colocados na parte de interface do módulo, e o texto é colocado na parte de implementação.

A parte de interface do módulo contém apenas cabeçalhos visíveis (acessíveis a outros programas e módulos) de procedimentos e funções (sem a palavra de serviço forward). O texto completo do procedimento ou função é colocado na parte de implementação, e o cabeçalho não pode conter uma lista de parâmetros formais.

O código fonte do módulo deve ser compilado usando a diretiva Make do submenu Compile e gravado em disco. O resultado da compilação do módulo é um arquivo com extensão . TPU (Unidade Turbo Pascal). O nome base do módulo é obtido do cabeçalho do módulo.

Para conectar um módulo ao programa, você deve especificar seu nome na seção de descrição do módulo, por exemplo:

usa Crt, Gráfico;

Caso os nomes das variáveis ​​na parte de interface do módulo e no programa que utiliza este módulo sejam os mesmos, a referência será à variável descrita no programa. Para se referir a uma variável declarada em um módulo, você deve usar um nome composto que consiste no nome do módulo e no nome da variável, separados por um ponto. O uso de nomes compostos se aplica não apenas a nomes de variáveis, mas a todos os nomes declarados na parte de interface do módulo.

O uso recursivo de módulos é proibido.

Se um módulo tiver uma seção de inicialização, as instruções nessa seção serão executadas antes que o programa que usa esse módulo comece a ser executado.

Vamos listar os tipos de módulos.

1. Módulo do SISTEMA.

O módulo SYSTEM implementa rotinas de suporte de nível inferior para todos os recursos internos, como E/S, manipulação de strings, operações de ponto flutuante e alocação dinâmica de memória.

O módulo SYSTEM contém todas as rotinas e funções padrão e integradas do Pascal. Qualquer sub-rotina Pascal que não faça parte do Pascal padrão e não seja encontrada em nenhum outro módulo está contida no módulo System. Este módulo é usado automaticamente em todos os programas e não precisa ser especificado na instrução uses.

2. Módulo DOS.

O módulo Dos implementa várias rotinas e funções Pascal que são equivalentes às chamadas DOS mais usadas, como GetTime, SetTime, DiskSize e assim por diante.

3. Módulo CRT.

O módulo CRT implementa vários programas poderosos que fornecem controle total sobre os recursos do PC, como controle de modo de tela, códigos de teclado estendidos, cores, janelas e sons. O módulo CRT só pode ser utilizado em programas que rodam em computadores pessoais IBM PC, PC AT, PS/2 da IBM e são totalmente compatíveis com os mesmos.

Uma das principais vantagens do uso do módulo CRT é a maior velocidade e flexibilidade nas operações da tela. Programas que não funcionam com o módulo CRT exibem informações na tela usando o sistema operacional DOS, que está associado a uma sobrecarga adicional. Ao usar o módulo CRT, as informações de saída são enviadas diretamente para o sistema básico de entrada/saída (BIOS) ou, para operações ainda mais rápidas, diretamente para a memória de vídeo.

4. Módulo GRÁFICO.

Usando os procedimentos e funções incluídos neste módulo, você pode criar vários gráficos na tela.

5. Módulo OVERLAY.

O módulo OVERLAY permite reduzir os requisitos de memória de um programa DOS em modo real. De fato, é possível escrever programas que excedam a quantidade total de memória disponível, pois apenas parte do programa estará na memória em um determinado momento.

Autor: Tsvetkova A.V.

<< Voltar: Arquivos (Arquivos. Operações de arquivo. Módulos. Tipos de módulos)

>> Encaminhar: Estruturas de dados abstratas (Estruturas de dados abstratas. Pilhas. Filas)

Recomendamos artigos interessantes seção Notas de aula, folhas de dicas:

Psicologia Geral. Berço

Direito bancário. Berço

Pediatria Hospitalar. Notas de aula

Veja outros artigos seção Notas de aula, folhas de dicas.

Leia e escreva útil comentários sobre este artigo.

<< Voltar

Últimas notícias de ciência e tecnologia, nova eletrônica:

A existência de uma regra de entropia para o emaranhamento quântico foi comprovada 09.05.2024

A mecânica quântica continua a nos surpreender com seus fenômenos misteriosos e descobertas inesperadas. Recentemente, Bartosz Regula do Centro RIKEN de Computação Quântica e Ludovico Lamy da Universidade de Amsterdã apresentaram uma nova descoberta que diz respeito ao emaranhamento quântico e sua relação com a entropia. O emaranhamento quântico desempenha um papel importante na moderna ciência e tecnologia da informação quântica. No entanto, a complexidade da sua estrutura torna a sua compreensão e gestão um desafio. A descoberta de Regulus e Lamy mostra que o emaranhamento quântico segue uma regra de entropia semelhante à dos sistemas clássicos. Esta descoberta abre novas perspectivas na ciência e tecnologia da informação quântica, aprofundando a nossa compreensão do emaranhamento quântico e a sua ligação à termodinâmica. Os resultados do estudo indicam a possibilidade de reversibilidade das transformações de emaranhamento, o que poderia simplificar muito seu uso em diversas tecnologias quânticas. Abrindo uma nova regra ... >>

Mini ar condicionado Sony Reon Pocket 5 09.05.2024

O verão é uma época de relaxamento e viagens, mas muitas vezes o calor pode transformar essa época em um tormento insuportável. Conheça um novo produto da Sony – o minicondicionador Reon Pocket 5, que promete deixar o verão mais confortável para seus usuários. A Sony lançou um dispositivo exclusivo - o minicondicionador Reon Pocket 5, que fornece resfriamento corporal em dias quentes. Com ele, os usuários podem desfrutar do frescor a qualquer hora e em qualquer lugar, simplesmente usando-o no pescoço. Este miniar condicionado está equipado com ajuste automático dos modos de operação, além de sensores de temperatura e umidade. Graças a tecnologias inovadoras, o Reon Pocket 5 ajusta o seu funcionamento em função da atividade do utilizador e das condições ambientais. Os usuários podem ajustar facilmente a temperatura usando um aplicativo móvel dedicado conectado via Bluetooth. Além disso, camisetas e shorts especialmente desenhados estão disponíveis para maior comodidade, aos quais um mini ar condicionado pode ser acoplado. O dispositivo pode, oh ... >>

Energia do espaço para Starship 08.05.2024

A produção de energia solar no espaço está se tornando mais viável com o advento de novas tecnologias e o desenvolvimento de programas espaciais. O chefe da startup Virtus Solis compartilhou sua visão de usar a Starship da SpaceX para criar usinas orbitais capazes de abastecer a Terra. A startup Virtus Solis revelou um ambicioso projeto para criar usinas de energia orbitais usando a Starship da SpaceX. Esta ideia poderia mudar significativamente o campo da produção de energia solar, tornando-a mais acessível e barata. O cerne do plano da startup é reduzir o custo de lançamento de satélites ao espaço usando a Starship. Espera-se que este avanço tecnológico torne a produção de energia solar no espaço mais competitiva com as fontes de energia tradicionais. A Virtual Solis planeja construir grandes painéis fotovoltaicos em órbita, usando a Starship para entregar os equipamentos necessários. Contudo, um dos principais desafios ... >>

Notícias aleatórias do Arquivo

Uma nova maneira de controlar a velocidade da luz 18.04.2019

Um grupo de pesquisadores da Universidade da Flórida Central descobriu uma nova maneira de controlar a velocidade de um pulso de luz. Este método não apenas permite acelerar ou desacelerar o pulso de luz, mas também permite inverter o sinal do valor da velocidade, ou seja, faz com que a luz se mova na direção oposta. Essa conquista em um futuro próximo pode levar ao surgimento de novos sistemas de comunicação óptica de alto desempenho, pulsos de luz "lentos" podem ser usados ​​como um buffer de armazenamento de dados, o que evitará a perda de informações.

Note-se que esta está longe de ser a primeira tentativa de implementação da tecnologia para controlar a velocidade da luz, mas em quase todas as outras tecnologias semelhantes, vários materiais foram utilizados para isso, tendo diferentes índices de refração, velocidade de propagação da luz e outras características ópticas. O novo método é o primeiro a desacelerar ou acelerar a luz em espaço aberto sem usar nenhum material como guia de luz.

Em seus experimentos, os cientistas mostraram que podem acelerar um pulso para 30 vezes a velocidade normal da luz, reduzi-lo para metade de sua velocidade original e até enviar esse pulso na direção oposta. Tais milagres com a luz permitem que eles criem um dispositivo chamado modulador óptico espacial. Falando em termos simples? Sem entrar na selva física e matemática, este modulador permite misturar os parâmetros espaciais e temporais de um pulso de luz em várias proporções, o que por sua vez permite controlar a velocidade desse pulso.

"Agora podemos controlar a velocidade da luz afetando diretamente o próprio impulso e reorganizando a energia contida nele. A reorganização da energia do impulso se manifesta na mistura de seus graus de liberdade espacial e temporal", escrevem os pesquisadores, "Enquanto tudo isso é apenas o primeiro passo de uma extensa pesquisa futura, cujos resultados podem levar a comunicações inteiramente novas e outras tecnologias ópticas."

Outras notícias interessantes:

▪ Dispositivo compacto para visualização da atividade cerebral

▪ Rede Li-Fi local para o desenvolvimento da Internet das coisas

▪ A condutividade do cristal é aumentada em 400 vezes

▪ Turbina Eólica Silenciosa Liam F1

▪ Células sexuais cultivadas a partir de células-tronco

Feed de notícias de ciência e tecnologia, nova eletrônica

 

Materiais interessantes da Biblioteca Técnica Gratuita:

▪ seção do site da Antena. Seleção de artigos

▪ artigo de Aurélio Agostinho (Bem-aventurado Agostinho). Aforismos famosos

▪ artigo Como Bill Gates se beneficiou ao escrever um programa de horário escolar? Resposta detalhada

▪ artigo Diretor de edição de programas de televisão e rádio. Descrição do trabalho

▪ artigo Amplificador de som de alta qualidade para computador. Enciclopédia de rádio eletrônica e engenharia elétrica

▪ artigo Fusível eletrônico, 6-55 volts 10-600 miliamperes. Enciclopédia de rádio eletrônica e engenharia elétrica

Deixe seu comentário neste artigo:

Имя:


E-mail opcional):


Comentário:





Todos os idiomas desta página

Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site

www.diagrama.com.ua

www.diagrama.com.ua
2000-2024