Вы находитесь на странице: 1из 32

Lgica e Fundamentos

de Programao II
2 perodo / 2014

Prova P2/N2
Material de Apoio
Gefferson Librelato
gefferson@fadep.br

ATENO
Prova P2 da N2 no dia 25/11/2014:

Peso: P1+P2 = 80% da N2

Individual

Sem o uso de internet, inclusive do moodle.

Sem o uso de notebooks, smartphones, pen-drives,


etc. Apenas os computadores da faculdade.

No pode utilizar qualquer material auxiliar,


inclusive apostila impressa. Apenas o material
fornecido pelo professor.

UNITS

UNITS

UNITS

UNITS - CHAMADA

ARQUIVOS BINRIOS

RECORDTYPE

RECORDTYPE

Conjunto de dados logicamente relacionados,


mas de tipos primitivos diferentes (integer, real,
string, etc.)

Os elementos so chamados de campos.

Ex:

Empregado

ID
Nome
Idade
Salario

ARQUIVOS BINRIOS

EDIO DE REGISTROS

ARQUIVO BINRIO - EDIO

ARQUIVO BINRIO - ALTERAO

Carrega-se o registro do arquivo:

Abre o arquivo

Move para a primeira posio (lembre-se de testar se abriu correto)

Percorre todos os registros do arquivo procurando o registro correto (geralmente pelo


chave primria). Se encontrar, carrega a varivel de retorno e finaliza o loop.

Fecha o arquivo.

Faz a funo retornar o registro.

Altera-se a(s) propriedade(s) desejadas (Nome, Idade, Salario, etc...)

Grava-se o registro alterado EM CIMA do registro ANTIGO.

Abre-se o arquivo

Move para a primeira posio (lembre-se de testar se abriu correto)

Tem que criar um CONTADOR para salvar a posio do registro dentro do arquivo.
Percorre todos os registros do arquivo procurando o registro correto (geralmente pela
chave primria) e incrementado o contador de posio.

Se encontrar o registro:

Utilizando o comando SEEK, move o cursor para a posio salva no CONTADOR de posio.
Grava o registro NA POSIO do registro que foi localizado.
Finaliza o loop se encontrou.

Fecha o arquivo

ARQUIVO BINRIO - ALTERAO


PASSO 1 PROCEDURE QUE ATUALIZA O REGISTRO NO ARQUIVO BINRIO.

ARQUIVO BINRIO - ALTERAO


PASSO 1 PROCEDURE QUE ATUALIZA O REGISTRO NO ARQUIVO BINRIO.

ARQUIVO BINRIO - ALTERAO


PASSO 2 FUNCTION QUE RETORNAR UM REGISTRO DO ARQUIVO BINRIO.

ARQUIVO BINRIO - ALTERAO

PASSO 3 PROCEDURE QUE SELECIONA O REGISTRO, ALTERA A(S) PROPRIEDADE(S) E ATUALIZA.

ARQUIVOS BINRIOS

EXCLUSO DE
REGISTROS

ARQUIVO BINRIO EXCLUSO

EXCLUSO LGICA

Cria-se um campo 'Flag' no RECORDTYPE que


ir sinalizar se aquele registro est deletado ou
no
Marca-se o flag como 'true', para os registros que
se deseja deletar.
Estes registros NO DEVEM mais aparecer nas
consultas.
Ter uma rotina chamada 'trunk' ou algo parecido
que ir fazer a deleo fsica do registro.

EXCLUSO LGICA
PASSO 1 ALTERAR O RECORDTYPE

EXCLUSO LGICA
PASSO 2 PROCEDURE PARA ASSINALAR COMO EXCLUDO.

EXCLUSO LGICA
PASSO 2 PROCEDURE PARA ASSINALAR COMO EXCLUDO.

EXCLUSO LGICA
PASSO 3 PROCEDURE PARA ESCOLHER O REGISTRO A SER EXCLUDO.

EXCLUSO LGICA
PASSO 3 PROCEDURE PARA ESCOLHER O REGISTRO A SER EXCLUDO.

EXCLUSO LGICA
PASSO 4 ALTERAR AS ROTINAS QUE MOSTRAM REGISTROS.

EXCLUSO LGICA
PASSO 4 ALTERAR AS ROTINAS QUE MOSTRAM REGISTROS.

EXCLUSO FSICA

Gera um novo arquivo, temporrio, do mesmo


RECORD TYPE.
L, um-a-um, todos os registros do arquivo principal.
Grava-se os registros, um-a-um, no arquivo
temporrio, exceto os registros que esto marcados
com o 'flag' de deleo.
Deleta o arquivo antigo.
Renomeia o arquivo temporrio com o nome do
arquivo antigo.

EXCLUSO FSICA

EXCLUSO FSICA

Glossrio:
<var>: file of <record>;

Cria um ponteiro para um arquivo binrio

assign (<ponteiro>, <filePath>);

Associa um ponteiro com um arquivo fsico no disco, onde em <filePath>


dever ser passado o caminho fsico at o disco

reset(<ponteiro>);

Move o cursor de registros para o primeiro registro do arquivo binrio (ou


seja, primeira posio do arquivo).
Normalmente este comando deve ficar ENTRE as diretivas {$I-} e {$I+} para
no disparar erros de compilao caso o arquivo no exista.
Se o comando reset for executado com SUCESSO, a varivel de sistema
IOResult ir estar setada com o valor 0 indicando que a abertura do
arquivo ocorreu sem problemas. Do contrrio a varivel de sistema estar
setada com o nmero do erro que ocorreu.

filesize(<ponteiro>)

Retorna o tamanho do arquivo binrio, isto , quantos registros existem


dentro do arquivo binrio. Lembre-se que cada registro equivale a uma
posio do arquivo.

seek(<ponteiro>,<posicao>)

Move o cursor de registros para uma determinada posio do arquivo


binrio.

rewrite(<ponteiro>)

Cria ou sobrescreve um arquivo binrio. Se o arquivo NO existe, o arquivo


ser criado. Se existir, ser sobrescrito com uma estrutura vazia.

write(<ponteiro>,<var>)

Grava uma varivel <var> do tipo <record> no arquivo binrio.

read(<ponteiro>,<var>)

L um registro do tipo <record> no arquivo binrio para uma varivel


<var>.

eof (<ponteiro>)

Retorna true se for o fim do arquivo. Do contrrio, retorna false.

close(<ponteiro>)

Fecha o arquivo binrio.

erase(<ponteiro>)

Deleta um arquivo do diretrio

rename(<ponteiro>,'novo_nome')

Renomeia um arquivo no diretrio

Glossrio:
Gravar um registro em um arquivo binrio

Declarao de um type
Record

1. Criar uma varivel que ser o ponteiro para o


arquivo.
2. Associar o ponteiro com o arquivo fsico.
3. Tentar mover o cursor para a primeira posio do
arquivo.
4. SE IOResult no retornar com erro, move o cursor
para a ltima posio do arquivo.
5. SENO, cria o arquivo novamente.
6. Grava o registro.
7. Fecha o arquivo.

<var> = Record
<field1> : <tipo>;
<field2> : <tipo>;
...
end;

Ler os registros de um arquivo binrio

Estrutura de uma Unit

1. Criar uma varivel que ser o ponteiro do arquivo.


2. Associar o ponteiro com o arquivo fsico
3. Tentar mover o cursor para a primeira posio do
arquivo.
4. SE IOResult retornar erro, recria o arquivo.
5. Enquanto NO for o fim do arquivo, l os
registros. Neste ponto que estaro quaisquer
operaes necessrias que a serem efetuadas sobre
cada registro.
6. Fecha o arquivo.

Unit <nome da unit>


interface
implementation
end.

Вам также может понравиться