Ver Mensaje Individual
  #5  
Antiguo 19-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Creo que no nos hemos entendido.

La rutina BuscarSocio no la tienes que modificar para nada, déjala como la tenías en el primer mensaje. Ahora la búsqueda por nombre:

De lo que se trata es de empezar a recorrer el archivo, registro por registro, mirando si el nombre que queremos buscar coincide con el registro actual, si lo es, dejamos de leer del archivo, porque lo hemos encontrado. Si no lo es, continuamos leyendo hasta que se encuentre o hasta el fin del archivo.

Código Delphi [-]
procedure TForm1.BuscarSocio1Click(Sender: TObject);
                            var i:string; c:Socio; m:string;
begin
  m := 'OK';
  i:=0;
  while m = 'OK' THEN
  begin
   inc(i);
   z.BuscarSocio( i, c,m);
   if m = 'OK' then 
// Si buscamos por el nombre, el nombre a buscar estará escrito en el editBusqueda
   if c.Nombre = editbusqueda.text then
     break; // salimos del bucle porque lo hemos encontrado.
  end;

 If mensaje='OK' then
      begin
       Edit2.Text:=c.Apellido;
       Edit3.Text:=c.Nombres;
       Edit1.Text:=IntToStr(c.DNI);
       Edit4.Text:=IntToStr(c.dn);
       Edit5.Text:=IntToStr(c.mn);
       Edit6.Text:=IntToStr(c.an);
      end
                  else
       ShowMessage('El texto a buscar no se encuentra en el archivo');
end;

Si ahora quieres buscar por dni, tienes que construir una rutina igual a la anterior y sustituir las líneas que dice:
Código Delphi [-]
   if c.Nombre = editbusqueda.text then
     break; // salimos del bucle porque lo hemos encontrado.

por estas otras:
Código Delphi [-]
   if c.dni = strToint(editbusqueda.text) then
     break; // salimos del bucle porque lo hemos encontrado.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 19-12-2006 a las 09:05:30.
Responder Con Cita