Ver Mensaje Individual
  #19  
Antiguo 07-03-2010
emiliano_b emiliano_b is offline
Miembro
 
Registrado: mar 2010
Posts: 13
Reputación: 0
emiliano_b Va por buen camino
Perdon, soy nuevo en el foro

Ahi va de nuevo el codigo...toy buescando como hacer lo que me dijiste..
Código:
unit Unit2;

interface
uses Dialogs, StdCtrls, SysUtils, Grids;

type
Cliente = Record
  Apellido, nombres: string[20];
  DNI, saldo: double;
end;
TArchivo = class
private
  Archi:File of Cliente;
  datos: Cliente;
  Ver: TStringGrid;
public
  procedure CrearArchivo(ArchiFisico:string);
  procedure AbrirArchivo(ArchiFisico:string);
  procedure AgregarCliente(c:Cliente;var b:byte);
  procedure GuardarArchivo(ArchiFisico:string);
  procedure EliminarCliente(var h:longint; e10: string);
  procedure CerrarArchivo;
  function Buscar_X_DNI(var h:longint; var c:Cliente):boolean;
  procedure MostrarLista(var ver:TStringGrid);
end;
implementation

procedure TArchivo.CrearArchivo;
  begin
    AssignFile(Archi,ArchiFisico);
    Rewrite(Archi);
  end;
procedure TArchivo.AbrirArchivo(ArchiFisico:string);
  begin
    AssignFile(Archi,ArchiFisico);
    Reset(Archi)
  end;
procedure TArchivo.AgregarCliente(c:Cliente;var b:byte);
  begin
  {$I-}
  Seek(Archi, FileSize(archi));
  {$I+};
  b:=IOResult;
    If b=0 then
      Write(Archi, c);
  end;
procedure TArchivo.GuardarArchivo(ArchiFisico:string);
  begin
    AssignFile(Archi,ArchiFisico);
    Rewrite(Archi);
  end;
procedure TArchivo.EliminarCliente(var h:longint; e10: string);
var
  aux: file of Cliente;
begin
  assignfile(aux,'temp.dat');
  {$I-}
  reset(archi);
  rewrite(aux);
  {$I+}

    if ioresult<>0 then
    showmessage('Error en Archivo')
    else
      Begin
      while not eof (archi) do begin
      read(archi,datos);
          if datos.dni <> h then
          write(aux,datos);
      end;
  closefile (archi);
  closefile(aux);
  erase(Archi);
    if not
    RenameFile('temp.dat', e10)
    then
    Showmessage('Error renombrando Archivos!');
    end;
    Showmessage ('Se eliminó correctamente el Cliente con DNI'+ inttostr(h));
end;
procedure TArchivo.CerrarArchivo;
  begin
      if IOresult = 0 then
      begin
      closefile(Archi);
      end


  end;
function TArchivo.Buscar_X_DNI(var h:longint;var c: Cliente):boolean;
begin
  reset(archi);
  while not eof (archi) do
  begin
    read(archi, c);
    if c.dni = h then
      begin
      Result := True;
      Exit;
      end;
  end;
  // Cliente no encontrado
  Result := False;
end;
  procedure TArchivo.MostrarLista(var ver:TStringGrid);
  var fila, columna: integer;
  begin
    Reset(Archi);
    fila:=1;
    columna:=0;
    while not EOF do
    begin
      datos.first;
      ver.Cells[fila,columna] := datos.nombres;
      inc(columna);
      ver.Cells[fila,columna] := datos.Apellido;
      archi.datos.next;
      inc(fila):
    end;
end;
    showmessage('El Archivo esta vacio');
    exit;
    end;
  end;
end.
gracias
Responder Con Cita