Jump to content


Photo

Ajudinha Na Exclusão


  • Faça o login para participar
5 replies to this topic

#1 YujiLima

YujiLima

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 24/11/2009, 19:08

Olá!

Gostaria que alguém me ajudasse com um programa de garagem que estou fazendo

eu só não sei como fazer o procedimento de exclusão se alguém tiver uma dica por favor me ajude.

Desde já, Agradeço e Medesculpem por alguma irregularidade no post.


o programa é esse:

program Garage;
uses crt;
type
  ficha=record
  comprador:string[20];
  CPF:string[11];
  marca:string[15];
  ano:string[4];
  modelo:string[15];
  PC:real;
  PV:real;
    end;
var
  cliente:ficha;
  garagem:file of ficha;
  menu:char;
  tamanho:integer;
procedure preenche;
  begin
       tamanho:=filesize(garagem);
       seek(garagem,tamanho);
       readln;
       writeln('Informe o nome do comprador');
       readln(cliente.comprador);
       while cliente.comprador <> '0'do
         begin
              With cliente do
                   begin
                        readln;
                        writeln('Informe o numero do CPF.');
                        readln(CPF);
                        writeln('Informe a marca do carro.');
                        readln(marca);
                        writeln('Informe o modelo do carro.');
                        readln(modelo);
                        writeln('Informe o ano do carro.');
                        readln(ano);
                        writeln('Informe o pre‡o de custo.');
                        readln(PC);
                        writeln('Informe o pre‡o de venda do carro.');
                        readln(PV);
                        write(garagem,cliente);
                        writeln('Informe o nome do comprador');
                        read(comprador);
                   end;
         end;
         close (garagem)
  end;

  procedure Leitura;
  begin
       reset(garagem);
       while not eof(garagem) do
             begin
                  read(garagem,cliente);
                  with cliente do
                       begin
                            readln;
                            write('Nome do comprador:',comprador);
                            readln;
                            write('Numero do cpf:',CPF);
                            readln;
                            write('Marca do carro:',marca);
                            readln;
                            write('Ano do carro:',modelo);
                            readln;
                            write('Modelo do carro:',ano);
                            readln;
                            write('Preco de compra:',PC:10:2);
                            readln;
                            write('Preco de venda:',PV:10:2);
                       end;
                       readln;
             end;
  end;

  Procedure criaracesso;
    begin
       {$I-}
       Reset(garagem);
       If IOresult <> 0
       then rewrite(garagem);
       {$I+}
    end;

  Procedure busca;
  var
  proc:string[11];
  achou:boolean;
  begin
       achou:=false;
       clrscr;
       readln;
       writeln('digite o CPF do comprador');
       read(proc);
       reset(garagem);
       readln;
       while not eof(garagem) and (not achou) do
                         begin
                              read(garagem,cliente);
                              if cliente.cpf = proc then
                            begin
                                 writeln('Nome:',cliente.comprador);
                                 writeln('CPF:',cliente.CPF);
                                 writeln('Marca:',cliente.marca);
                                 writeln('Ano:',cliente.modelo);
                                 writeln('Modelo:',cliente.ano);
                                 writeln('Preco de Compra:',cliente.PC:10:2);
                                 writeln('Preco de Venda:',cliente.PV:10:2);
                                 achou:= True;
                                 readln;
                            end;
                         end;
                         if not achou then write('Cliente nao cadastrado');
                         readln;
                         close(garagem);

  end;

Procedure Modificacao;
  var
  proc:string[11];
  achou:boolean;
  begin
       achou:=false;
       clrscr;
       readln;
       writeln('digite o CPF do comprador');
       read(proc);
       reset(garagem);
       readln;
       while not eof(garagem) and (not achou) do
                         begin
                              read(garagem,cliente);
                              if cliente.cpf = proc then
                            begin
                                 writeln('Nome:',cliente.comprador);
                                 writeln('CPF:',cliente.CPF);
                                 writeln('Marca:',cliente.marca);
                                 writeln('Ano:',cliente.modelo);
                                 writeln('Modelo:',cliente.ano);
                                 writeln('Preco de Compra:','R$',cliente.PC:10:2);
                                 writeln('Preco de Venda:','R$',cliente.PV:10:2);
                                 achou:= True;
                                 readln;
                                 reset(garagem);
                                 seek(garagem,tamanho);
                                 writeln('Nome do Comprador:');
                                 readln(cliente.comprador);
                                 writeln('CPF do Comprador:');
                                 readln(cliente.CPF);
                                 writeln('Marca do Carro:');
                                 readln(cliente.marca);
                                 writeln('Modelo do Carro:');
                                 readln(cliente.modelo);
                                 writeln('Ano do Carro:');
                                 readln(cliente.ano);
                                 writeln('Preco de Compra:');
                                 readln(cliente.PC);
                                 writeln('Preco de Venda:');
                                 readln(cliente.PV);
                                 write(garagem,cliente);
                            end;
                         end;
                         if not achou then write('Cliente nao cadastrado');
                         readln;
                         close(garagem);

  end;




Procedure Baixa;
var
garagem,aux:file of ficha;
Achou:boolean;
proc:string[11];
begin
       achou:=false;
       clrscr;
       readln;
       writeln('digite o CPF do comprador');
       read(proc);
       reset(garagem);
       readln;
       while not eof(garagem) and (not achou) do
                         begin
                              read(garagem,cliente);
                              if cliente.cpf = proc then
                            begin
                                 writeln('Nome:',cliente.comprador);
                                 writeln('CPF:',cliente.CPF);
                                 writeln('Marca:',cliente.marca);
                                 writeln('Ano:',cliente.modelo);
                                 writeln('Modelo:',cliente.ano);
                                 writeln('Preco de Compra:',cliente.PC:10:2);
                                 writeln('Preco de Venda:',cliente.PV:10:2);
                                 achou:= True;
                                 readln;

                            end;
                         end;
                         if not achou then write('Cliente nao cadastrado');
                         readln;
                         close(garagem);

  end;

end;

begin
assign(garagem,'E:\Producao.dat');
    criaracesso;
    menu:='0';
    repeat
      clrscr;
      gotoxy(38,1);
      writeln('Menu');
      gotoxy(20,2);
      writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®®®®®®®®®');
      gotoxy(38,4);
      writeln('1-Cadastro');
      gotoxy(38,6);
      writeln('2-Leitura');
      gotoxy(38,8);
      writeln('3-Buscar');
      gotoxy(38,10);
      writeln('4-Modificar');
      gotoxy(38,12);
      writeln('5-Sair');
      gotoxy(20,14);
      writeln('¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯®®®®®®®®®®®®®®®®®®®®');
      read(menu);
      clrscr;
      if(menu in ['1','2','3','4','5'])
        then
        begin
          case menu of
                '1':Preenche;
                '2':Leitura;
                '3':Busca;
                '4':Modificacao;
                '5':exit;
                else write('erro de opcao');
          end;
        end;
    until menu='0';

  {criaracesso;
  preenche;}
  leitura;
  read;
end.


#2 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 24/11/2009, 20:02

Olá, você postou um baita de um código, mas a legibilidade fica um pouco comprometida.

De qualquer forma, pelo que pude perceber você está usando arquivos tipados porém não está usando acesso dinâmico.

Nesse caso, faremos assim, supondo que o arquivo seja do tipo Real:

var
  FR: File of Real;
  Swap: Real;
  L: integer;
begin
  Assign(FI,'dados.dat');
  Reset(FI);
  For i := 1 to FileSize(FR-1) do
   begin
    Seek(FR, i);
    Read(FR,Swap);
    Seek(FR, i-1);
    Write(FR, Swap);
   end;
  Seek(FileSize(FR-1));
  Truncate(FR);
  Close(FR);
End;

Bem, para começar, o código que faz a exclusão de arquivo tipado é o Truncate, que vai eliminar de Seek pra baixo. O algoritmo acima, "salva" os dados da posiçao após o dado que se quer elimar, na var Swap, que é re-incluida no arquivo ao final do processo.

Vale lembrar que nem todas as variáveis estão declaradas, e usei um exemplo genérico, para que você entenda como o algoritmo funciona.

Qualquer dúvida, volte a postar.
Não sabe por onde começar? Que tal pelas Regras ?

#3 YujiLima

YujiLima

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 24/11/2009, 22:45

ainda num testei, mas obrigado DarkSign

PS: foi meu primeiro post

#4 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 25/11/2009, 09:21

de nada. E por favor, edite seu post, colocando o código entre as tags [code=auto:0][/ code] (sem espaços)

Assim, ficará mais legível.
Não sabe por onde começar? Que tal pelas Regras ?

#5 YujiLima

YujiLima

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 25/11/2009, 15:39

desculpe-me
mas como eu sou novo na programação
não estou conseguindo entender o que você me explicou

e tem como eu arrumar o post anterior?

#6 beto

beto

    Doutor

  • Ex-Admins
  • 840 posts
  • Sexo:Masculino

Posted 26/11/2009, 12:07

desculpe-me
mas como eu sou novo na programação
não estou conseguindo entender o que você me explicou

e tem como eu arrumar o post anterior?

eu ja arrumei pra vc..

mas quando vc for postar algum codigo, sempre coloque ele entre a tag code como o Dark exemplificou pra vc:

[code ]seu código aqui[/ code] (sem espaço)
ficaria assim:
[code]seu código aqui[/code]

(y)
twitter: @robertorcezar




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq