Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ficheros (https://www.clubdelphi.com/foros/showthread.php?t=30233)

Delpho 12-02-2006 12:10:42

ficheros
 
Wenas amigos!!
Tengo una pequeña duda, y sobre como buscar una cadena dentro de un fichero.
mi fichero tiene un forma como este:
nombre apellido apellido2 fecha dni
y quisiera saber si yo puedo buscar la cadena de DNI y mostrar la linea entera

Código Delphi [-]
procedure TForm3.Button1Click(Sender: TObject);
begin
  buscar:=MaskEdit1.Text;
  if FileExists('Clientes2.txt') then begin
    AssignFile (fich,'Clientes.txt');
    Reset (fich);
    while not Eof(fich) do Begin
      Readln(fich,texto);
      if (buscar=texto) then begin
          Memo1.Lines.Add(texto);
      end;
    end;//fin while
    CloseFile (fich);
  end
  else begin
    ShowMessage('El fichero aun no existe');
  end;//fin if
end;

Aver si alguien me puede echar una mano y decirme como se podria hacer
Muchas Gracias!!!

dec 12-02-2006 12:34:40

Hola,

¿Fichero te parece un buen título para este Hilo? No ayudarás a nadie si alguna vez se pone a buscar información en estos Foros y este Hilo puede contener, precisamente, aquello que esté buscando. Por favor, revisa la guía de estilo de estos Foros para más información. (Y utiliza las etiquetas Delphi, en este caso: edito yo mismo tu mensaje para que veas la diferencia)

En lo que toca a lo que dices... creo que en tu código hay algo que no cuadra y es lo siguiente:

Código Delphi [-]
if (buscar=texto) then begin
  Memo1.Lines.Add(texto);

Ahí estás "preguntando" si "buscar" es igual a "texto", pero, si las líneas del fichero guardan los datos de la manera que dices y a ti te interesa solamente el DNI, esto es, uno de los datos que guarda la línea... esa condición fallará fatalmente.

Lo que podrías hacer acaso es buscar dentro de la línea, esto es, en el contenido de la variable "texto", si existe la cadena del DNI,... por ejemplo, con la función "Pos", que te devolverá "algo" distinto de cero en caso de encontrarse lo que buscas. Echa un vistazo a su ayuda.

Y me quedo con la gana de decirte de otras funciones que pueden echarte una mano. Lo que pasa es que ahora mismo no recuerdo exactamente, y trato de localizarlas en Delphi, en la ayuda, pero, no soy capaz... tal vez algún compañero sería tan amable de darnos más información al respecto.

Delpho 12-02-2006 12:41:52

gracias
 
Muchas Gracias, ya encontre yo la funcion

i:=Pos(buscar,texto);

si i=0 es que no lo a enontrado, sino muestro la linea

Hasta Luego, y perdon por el nombre del hilo


La franja horaria es GMT +2. Ahora son las 07:24:37.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi