PDA

Ver la Versión Completa : Qué parámetro falta en este procedure


SaraTorres
05-10-2017, 03:13:24
Chicos,
Esta consulta es fácil para ustedes, pero como soy algo nueva en Delphi, no entiendo : /

Quiero saber qué sigue porqué me tira error la acción de esta procedure y me selecciona
lo que esta en negrito, o qué debe ir llamar la procedure "BuscarArchivos"

BuscarArchivos('C:\', '*.*',true, FilesList);


El procedure original es este.

procedure BuscarArchivos(StartDir, FileMask: string; recursively: boolean; var FilesList: TStringList);
.
..
... etc

Muchas gracias

AgustinOrtu
05-10-2017, 03:17:50
Hola SaraTorres, faltan algunos datos para poder identificar el problema. No podrias copiar y pegar el procedimiento en donde invocas esta linea:

BuscarArchivos('C:\', '*.*',true, FilesList);

Aparentemente no te falta ningun parametro, pero lo que le estas pasando como FileList debe ser un objeto de clase TStringList

SaraTorres
05-10-2017, 03:32:04
Hola SaraTorres, faltan algunos datos para poder identificar el problema. No podrias copiar y pegar el procedimiento en donde invocas esta linea

Este es el código original que encontré:
Lo que necesito es saber cómo llamar esta procedure. Muchas gracias

procedure FindFiles(StartDir, FileMask: string; recursively: boolean; var FilesList: TStringList);
const
MASK_ALL_FILES = '*.*';
CHAR_POINT = '.';
var
SR: TSearchRec;
DirList: TStringList;
IsFound: Boolean;
i: integer;
begin
if (StartDir[length(StartDir)] <> '\') then begin
StartDir := StartDir + '\';
end;

IsFound := FindFirst(StartDir + FileMask, faAnyFile - faDirectory, SR) = 0;

while IsFound do begin
FilesList.Add(StartDir + SR.Name);
IsFound := FindNext(SR) = 0;
end;

FindClose(SR);

if (recursively) then begin
DirList := TStringList.Create;
try
IsFound := FindFirst(StartDir + MASK_ALL_FILES, faAnyFile, SR) = 0;
while IsFound do
begin
if ((SR.Attr and faDirectory) <> 0) and
(SR.Name[1] <> CHAR_POINT) then
DirList.Add(StartDir + SR.Name);
IsFound := FindNext(SR) = 0;
end;
FindClose(SR);

for i := 0 to DirList.Count - 1 do
FindFiles(DirList[i], FileMask, recursively, FilesList);
finally
DirList.Free;
end;
end;
end;

ecfisa
05-10-2017, 05:56:22
Hola.
...
Lo que necesito es saber cómo llamar esta procedure. Muchas gracias
...

En el mensaje #5 de este hilo: Aplicacion de Busqueda Recursiva de Archivos en Disco (http://www.clubdelphi.com/foros/showthread.php?t=86325), tenes un ejemplo de como llamar a esa función. ( TForm1.BuscarClik )

Saludos :)

Neftali [Germán.Estévez]
05-10-2017, 10:01:17
Hola Sara.
Si el error te da en esa variable, justo nos falta saber cómo has definido y creado (dado que es un objeto) esa variable.
También es bueno, para próximas consultas, que si te da un error, pongas cual es.



Quiero saber qué sigue porqué me tira error la acción de esta procedure y me selecciona
...
BuscarArchivos('C:\', '*.*',true, FilesList);
...