Ver Mensaje Individual
  #1  
Antiguo 28-01-2005
Avatar de Xianto
Xianto Xianto is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nací en Neuquén (ARG), desde 2001 Spain
Posts: 151
Reputación: 20
Xianto Va por buen camino
Problema de memoria...

Buenas...

Debido a una necesidad personal he hecho una app para que busque y reemplaze texto en archivos de manera recursiva en un directorio o varios...

Para probarlo descomprimi en un dir un php-nuke completo, y luego con el programilla intente cambiar en todos los archivos y todas las carpetas lo que dijera "php" por "pepino" y funciono muy bien, luego al intentar nuevamente cambiar "pepino" por "meduza" me da el tipico error de memoria.

Entonces busque los create para liberarlos, pero todo estaba bien... al ser solo un formulario no uso nada extraño, ya que solo es un form.
Lo interesante es que cierro la app la abro, cambio en ese mismo dir "pepino" por "meduza", luego voy a otro dir distinto y cambio "pepe" por "pepa" y no me da fallos...

La verdad es que estoy perdido, intente buscar la linea donde da el fallo, pero es imposible, ya que en una funcion recursiva de busquedad de todos los archivos llega a unos 5621 carpetas y tengo que estar con el F8 hasta que llegue a esa linea que me da problema, porque sino al fallar me aparece el debug de memoria...

He aquí la función en discordia:

Código Delphi [-]
 
procedure TForm1.Rastrear(dir: string);
   var
    sr: TSearchRec;
begin
   if FindFirst (Dir+'\*.*', faDirectory, sr)=0 then
   begin
       while FindNext(sr)=0 do
         If (((sr.Attr and faArchive) <> 0) and (Pos(st, sr.Name)>0)) then
         begin
           FList.Add(Dir+'\'+sr.Name);
           tempo := tempo + 1;
           Label4.Caption := 'Archivos hallados: ' + IntToStr(tempo);
         end;
       Application.ProcessMessages;
       IPosi := IPosi + -1;
       FindClose(sr);
       If IPosi > -1 Then
         Rastrear(DList[IPosi]);
   end;
end;

No se, alguna idea de lo que puedo mirar ???
__________________
El diseño dira si tiene futuro...
Responder Con Cita