![]() |
problema con aplicación para consola
:confused:
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. |
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! |
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! |
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 :D)
Hasta luego. ;) |
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 ;)
|
Gracias
Muchas gracias !!
|
La franja horaria es GMT +2. Ahora son las 04:07:59. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi