exclusao lógica, como fazar?

Delphi

11/07/2003

MOÇADA, ESSA PEQUENA APLICAÇAO DEVERÁ PREVER UMA EXCLUSAO LOGICA OU SEJA, TODOS OS REGISTROS COM EXCLUIDO = ´*´ DEVERAO SER IGNORADOS PELA ALTERAÇÃO E PESQUISA (´funções estas que nao coloquei pra não ficar muito extenso o codigo´) E A FUNÇAO DE CADASTRAMENTO DEVERÁ PREVER O REAPROVEITAMENTO DOS REGISTROS EXCLUIDOS.

SE ALGUEM PUDER ME DAR UMA FORÇA AI ... OBRIGADO.


type
Notas = record
Flag:Char;
Excluido: char; // SE NO EDIT = ´*´ NAO PODE SER DELETADO!
Codigo: Integer;
Nome: String[40];
Endereco: String[50];
Telefone: String[13];
Nota1: Real;
Nota2: Real;
Media: Real;
end;
var
Dado: Notas;
Arquivo: File of Notas;

{ TForm1 }

procedure TForm1.AcessaArquivo(Sender: TObject);
begin
AssignFile(Arquivo, ´C:\NOTAS.DAP´);
LimpaTela;
if FileExists(´C:\NOTAS.DAP´) then
Reset(Arquivo)
else
begin
Rewrite(Arquivo);
Write(Arquivo, Dado);
end;
Button2.Enabled := False;
Button3.Enabled := False;
end;


procedure TForm1.SalvaRegistro;
var
Codigo: Integer;
retorno: String;
begin
Dado.Flag := ´ ´;
Dado.Codigo := StrToInt(Edit1.Text);
Dado.Nome := Edit2.Text;
Dado.Endereco := Edit3.Text;
Dado.Telefone := Edit4.Text;
val(edit5.Text, Dado.Nota1,Codigo);
val(edit6.Text, Dado.Nota2,Codigo);
Dado.Media := (Dado.Nota1 + Dado.Nota2)/2;
str(dado.media:5:2, retorno);
Edit7.Text := retorno;
Write(Arquivo, Dado);
end;

procedure TForm1.Button1Click(Sender: TObject); // CADASTRA
begin
if (Edit1.Text = ´´) then
ShowMessage(´O campo Código está em branco´)
else
if (Pesquisa(StrToInt(Edit1.Text))) then
begin
MostraTela;
ShowMessage(´Registro cadastrado´);
end
else
begin
Seek(Arquivo, 0);
repeat
Read(Arquivo, Dado);
until (Dado.Flag = ´*´) or (Eof(Arquivo));
if (Dado.Flag = ´*´) then
Seek(Arquivo,FilePos(Arquivo)-1)
else
Seek(Arquivo,FilePos(Arquivo));
SalvaRegistro;
end;
LimpaTela;
end;


Harry

Harry

Curtidas 0
POSTAR