Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-03-2012
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Mi aplicacion estas mui lenta

Quando hago una busca en un universo de unos 2.000 archivo(.pas y .dfm), se queda mui lenta mi aplicacion. Abajo mis codigos:

Mi procedure de busca
Código:
procedure TForm1.BuscaTexto(path: string; const FileMask, tipo, tabela: string);
var
  SR: TSearchRec;
  txt: TextFile;
  Row: string;
  Found: Boolean;
  i: Integer;
  NroExt: TStrings;
begin
  NroExt:= TStringList.Create;
  try
    Varrer.Enabled := False;
    NroExt.Delimiter:= ';';
    NroExt.DelimitedText:= FileMask;
    path := IncludeTrailingPathDelimiter(path);
    for i:= 0 to NroExt.Count - 1 do
    begin
      if FindFirst(path + NroExt[i], faAnyFile - faDirectory, SR) = 0 then
        repeat
          Application.ProcessMessages;
          AssignFile(txt,path + SR.Name);
          Reset(txt);
          Found:= False;
          while not Eof(txt) and not Found do
          begin
            Readln(txt, Row);
            if Pos(tabela, Row) > 0 then
            begin
              ListBox1.Items.Add(tipo + ';' + tabela + ';' + SR.Name);
              Found:= True
            end
          end;
          CloseFile(txt);
        until FindNext(SR) <> 0
    end;
  finally
    NroExt.Free;
    Varrer.Enabled := True;
    FindClose(SR);
  end;
  //end;

  if FindFirst(Path + '*.*', faDirectory, SR) = 0 then
  begin
    try
      repeat
        if (SR.Name <> '.') and (SR.Name <> '..') then
            TextFoundInFile(Path + SR.Name,'*.pas;*.dfm',tipo,tabela);
      until FindNext(SR) <> 0;
    finally

    end;
  end;
end;
Mi llamada a procedure
Código:
procedure TForm1.VarrerClick(Sender: TObject);
begin
  ClientDataSet1.Open;
  pth := IncludeTrailingPathDelimiter(edtDir.Directory);
  while not ClientDataSet1.Eof do
  begin
    //TextFoundInFile(pth,'*.pas;*.dfm',ClientDataSet1.FieldByName('xtype').AsString,ClientDataSet1.FieldByName('name').AsString);
    BuscaTexto(pth,'*.pas;*.dfm',ClientDataSet1.FieldByName('xtype').AsString,ClientDataSet1.FieldByName('name').AsString);
    ClientDataSet1.Next;
  end;
  ListBox1.Items.SaveToFile(ExtractFilePath(Application.ExeName) + 'Fontes.csv');
end;
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
aplicación lenta Celta Varios 2 13-01-2012 13:42:19
Aplicacion se pone lenta aanil OOP 2 06-02-2010 01:42:20
Aplicacion lenta aanil OOP 4 26-01-2010 15:11:39
aplicacion lenta en VPN fcobanda Conexión con bases de datos 1 30-04-2005 09:59:33
Aplicacion lenta Eduardo Varios 7 02-12-2004 09:25:04


La franja horaria es GMT +2. Ahora son las 01:56:46.


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
Copyright 1996-2007 Club Delphi