Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Filtrar las filas encontradas en un txt (https://www.clubdelphi.com/foros/showthread.php?t=92453)

Racso2006 03-11-2017 12:07:19

Filtrar las filas encontradas en un txt
 
Buenos dias y muchas gracias de antemano.

Lo que intento hacer es lo siguiente.

tengo un texto txt que al hacer un buscar me tiene que sacar todas las filas que contengan lo que se ha escrito en ese edit.

He provado de varias maneras diferentes pero no me llega a salir correctamente, y actualmente no tengo casi nada ya que nada me ha servido:
Código Delphi [-]
procedure TFconfigcliente.SpeedButton1Click(Sender: TObject);
 var 
 Archivo: TStrings;
 fichero:string;
 i: Integer;
 PosIni, PosFin : Integer; 
 CadenaTmp, Resultado : String; 

   begin  
   Archivo := TStringList.Create;
     if Open1.execute then  
     begin  
     fichero := open1.Files.Strings[0]; 
     Archivo.LoadFromFile(fichero); 
     end; 
   CadenaTmp := Archivo.text;  
     for i:=0 to (Archivo.Count-1) do
     begin
       if Ansipos(trim(edit1.text),trim(CadenaTmp))<>0 then //esto no se si lo tengo bien definido para que realize el if solo a las filas que tengan la palabra  
       begin   
       memo1.Text := archivo. ;    //no se como definir que imprima toda la fila 
       end; 
    end;

si hay algun codigo que no cuadre es de todas las pruebas que he realizado que ya me he liado un poco.

espero podais arrojar luz sobre este desastre :P

Casimiro Notevi 03-11-2017 13:48:05

¿Pero qué quieres hacer? ¿cargar un fichero de texto y mostrarlo?

ecfisa 03-11-2017 14:54:07

Hola.

Según te entiendo, sería algo así:
Código Delphi [-]
procedure AddLocated(const FileName, Searched: string; Lines: TStrings);
var
  TS: TStrings;
  i : Integer;
begin
  TS := TStringList.Create;
  try
    TS.LoadFromFile(FileName);
    for i := 0 to TS.Count - 1  do
      if AnsiPos(Searched, TS[i]) <> 0 then
        Lines.Add(TS[i]);
  finally
    TS.Free;
  end;
end;

Ej. de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Clear;
  AddLocated('C:\ARCHIVO.TXT', Edit1.Text,  Memo1.Lines);
end;

Saludos :)

Racso2006 03-11-2017 14:56:49

cargar un fichero y mostrar en un memo (o meterlas en un DBgrid) las lineas del fichero que contengan la palabra definida en el edit1.

ejemplo:

(lunes 13:30) juan: hola que tal?
(martes 12:45) maria: perfecta aqui comiento
(martes 20:32) jose: yo tambien perfecto, y tu juan?

si este es el fichero, y en el edit ponemos juan tendriamops que optener lo siguiente:
(lunes 13:30) juan: hola que tal?
(martes 20:32) jose: yo tambien perfecto, y tu juan?

ecfisa 03-11-2017 19:32:26

Hola.
Cita:

Empezado por Racso2006 (Mensaje 522237)
cargar un fichero y mostrar en un memo (o meterlas en un DBgrid) las lineas del fichero que contengan la palabra definida en el edit1.

ejemplo:

(lunes 13:30) juan: hola que tal?
(martes 12:45) maria: perfecta aqui comiento
(martes 20:32) jose: yo tambien perfecto, y tu juan?

si este es el fichero, y en el edit ponemos juan tendriamops que optener lo siguiente:
(lunes 13:30) juan: hola que tal?
(martes 20:32) jose: yo tambien perfecto, y tu juan?

Entonces te entendí bién... ;)


Saludos :)

Racso2006 13-11-2017 11:42:18

si, entendiste bien y me fue perfecto, lo que no se porque no se publico mi anterior post :D

muchisimas gracias


La franja horaria es GMT +2. Ahora son las 18:42:50.

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