FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
problema con aplicación para consola
Tengo el siguiente problema, estoy intentando hacer con delphi un ejecutable para pasarle parámetros desde la consola; pero me dice que una de las funciones que utilizo esta redeclarada. ¿Alguien me puede ayudar? program Limpieza; {$APPTYPE CONSOLE} uses SysUtils, Messages, Variants, Classes, Controls, Dialogs, StdCtrls; function FindFile(const filespec: TFileName; attributes: integer = faReadOnly Or faHidden Or faSysFile Or faArchive): TStringList; var lista: TStringList; begin { TODO -oUser -cConsole Main : Insert code here } lista := FindFile('c:\borrame\')//ParamStr(1)+'*.*'); if lista.Count=0 then ShowMessage('¡No existen ficheros!'); end; function FindFile(const filespec: TFileName; attributes: integer): TStringList; var spec: string; list: TStringList; procedure RFindFile(const folder: TFileName); var lista: TStringList; SearchRec: TSearchRec; begin // Busca todos los archivos concordantes // en la carpeta actual y agrega sus nombres // a la lista if FindFirst(folder + spec, attributes, SearchRec) = 0 then begin try repeat if (SearchRec.Attr and faDirectory = 0) or (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then list.Add(folder + SearchRec.Name); if FileDateToDateTime(SearchRec.time) < (Now-3) then DeleteFile(folder + SearchRec.Name); until FindNext(SearchRec) <> 0; except FindClose(SearchRec); raise; end; FindClose(SearchRec); end; // Ahora busca en las subcarpetas if FindFirst(folder + '*', attributes Or faDirectory, SearchRec) = 0 then begin try repeat if ((SearchRec.Attr and faDirectory) <> 0) and (SearchRec.Name <> '.') and(SearchRec.Name <> '..') then RFindFile(folder + SearchRec.Name + '\'); until FindNext(SearchRec) <> 0; except FindClose(SearchRec); raise; end; FindClose(SearchRec); end; end; // procedure RFindFile dentro de FindFile begin // function FindFile list := TStringList.Create; try spec := ExtractFileName(filespec); RFindFile(ExtractFilePath(filespec)); Result := list; except list.Free; raise; end; end; end. |
#2
|
||||
|
||||
Como estas trabajando en el DPR no tienes una parte de interface y otra de implementación y estas queriendo declarar la función FindFile en las primeras líneas. Simplemente quita esta supuesta declaración, porque el compilador toma como que hay dos funciones FindFile.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
Por otro lado al no haber implementación, solo podrás ejecutar las funciones que han sido escritas previamente a la llamada. O sea que vas a tener que mover FindFile arriba del punto de entrada de la aplicación, o ponerla en una unit plana.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#4
|
||||
|
||||
También podes usar (supongo que aún es válida) la sentencia forward existente desde los viejos días de pascal (creo que desde el 1 o 2 )
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
||||
|
||||
De todos modos hay un detalle... la función no puede ir debajo del "end."... asi que sí o si va a ser visible de donde se llama
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#6
|
|||
|
|||
Gracias
Muchas gracias !!
|
|
|
|