Ver Mensaje Individual
  #17  
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
ta muy bueno lo que me decis..

Esta muy buena la forma en que me decis de hacerlo, pero como que definis fila y columna... te muestro el desastre que tengo hecho hasta aho desde la unit 2 donde estan los procedimientos para la otra unit:
Código Delphi [-]
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
  with ver do
    begin
    // Título de las columnas
      Cells[0, 0] := 'NOMBRE';
      Cells[1, 0] := 'APELLIDO';
      Cells[2, 0] := 'DNI';
      Cells[3, 0] := 'SALDO';
    Reset(Archi);
fila:=1;
columna:=0;

cliente.first;
while not cliente.eof do
begin
  rejilla[fila,columna] := c.nombre;
  inc(columna);
  rejilla[fila,columna] := c.apellidos;
  ...
  ...
  cliente.next;
  inc(fila):
end;
end;
    showmessage('El Archivo esta vacio');
    exit;
    end;
  end;
end.

NI falta que me digas que debe tener errores, voy emparchando mas o menos porq lo tengo que terminar hoy si osi porq mañana laburo, asi que nada...lo hago como puedo... la proxima ya ira mejor imagino.
gracias por todo viejo.

Última edición por rgstuamigo fecha: 09-03-2010 a las 14:35:50. Razón: Estética en el código
Responder Con Cita