Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   SearchRec sale antes del termino (https://www.clubdelphi.com/foros/showthread.php?t=74908)

Paulao 17-07-2011 21:53:58

SearchRec sale antes del termino
 
Hizo una busca usando SearchRec. El que pasa es que quando el encuentra una carpeta vacia, el sale del loop Repeat..Until o While. Asi me lo hizo:

Código Delphi [-]
function Busca(Dir: TJvEditDirectory): Boolean;
var
 Sr. TSearchRec;
 I: Integer;
begin
  I := FindFirst(Dir.Directory + *.*, faAnyFile,SR);
  while I = 0 do
  begin
    if(SR.Name <> '.') and (SR.Name <> '..') then
      Llama_mi_funcion_para_mover_archivo;
  end;
  I := FindNext(SR);
end;

x_aguilarf 17-07-2011 22:59:16

El código esta mal, el FindNext debe de estar dentro del bucle:

Código Delphi [-]
function Busca(Dir: TJvEditDirectory): Boolean;
var
 Sr. TSearchRec;
 I: Integer;
begin
  I := FindFirst(Dir.Directory + *.*, faAnyFile,SR);
  while I = 0 do
  begin
    if(SR.Name <> '.') and (SR.Name <> '..') then
      Llama_mi_funcion_para_mover_archivo;
    I := FindNext(SR);
  end;
end;

Saludos

Paulao 18-07-2011 14:08:25

Si, y estas. Yo quando puzo esta Thread, puzo afuera, pero en el codigo esta hacia estas dentro. Este codigo no funciona, o sea, si tengo mas de una carpeta y una estas vacia, el sale de la busca.

Paulao 19-07-2011 14:04:36

Resolvi. Tuvo que hacer de dos formas. Una buscando el archivo y otra las carpetas, llamando recursivamiente la misma procedure. Esto resolvio.


La franja horaria es GMT +2. Ahora son las 04:22:09.

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