Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como Ejecuto un compactador desde delphi (https://www.clubdelphi.com/foros/showthread.php?t=40368)

tulio 14-02-2007 16:00:05

Como Ejecuto un compactador desde delphi
 
Hola Foro

Les comento que a un sistema quiero agregarle un formulario en el cual al final del dia llame a un compactador, por ejemplo winrar o arj y compacte todas las bases de datos *.gdb y le ponga como nombre de archivo compactado en forma automatica por ejemplo COPIA140207.RAR.
Trato de probar con lo siguiente y no se instancia la fecha del dia en la variable fecha del winexec, lo que veo es que lo toma como un string.

FECha:='Copia'+datetostr(date);
WinExec( 'Command.com / c ARJ A fecha *.gdb ', SW_SHOW );

esto me lo compacta como fecha.arj y yo quiero que salga copia140207.arJ


Seguro que alguno de ustedes a realizado algo parecido y les andubo o si tienen otra idea para solucionar el problema la voy a escuchar.

Saludos y gracias

tulio

seoane 14-02-2007 16:48:58

Prueba con esto
Código Delphi [-]
WinExec( PChar('Command.com / c ARJ A ' + fecha + '  *.gdb '), SW_SHOW );

tulio 14-02-2007 18:29:18

Gracias seoana

fijate que tiene la siguiente linea que no me ejecuta nada

fecha:='c:\sistema\backup\arJ a co140207.arJ *.*';

shellexecute(f_backup.handle,nil,pchar(JFECha),nil,nil,SW_SHOW);

a esas dos lineas las puse en un boton y no hace nada.

Probe con esta instruccion porque el winexec da error de tipo de d.o.s. incorrecto.

gracias

seoane 14-02-2007 18:45:32

Vamos por partes como dijo jack :)

El error que te da en esta linea
Código Delphi [-]
WinExec( PChar('Command.com / c ARJ A ' + fecha + '  *.gdb '), SW_SHOW );
seguramente es debido a que en windows XP no existe el fichero "Command.com", el interprete de comandos se llama "cmd.exe". Si sigues queriendo usarlo consulta primero su nombre en la variable de entorno COMSPEC, aunque no veo la necesidad de usarlo en este caso. Una instrucción como esta también serviría:
Código Delphi [-]
WinExec( PChar('C:\sistema\backup\ARJ A ' + fecha + '  *.gdb '), SW_SHOW );

Pero tienes razón, la instrucción WinExec esta condenada a desaparecer, solo se incluye para compatibilidad con aplicaciones antiguas. Así que mejor usar otra funciones como ShellExecute.

La razón porque no te funciona ShellExecute es porque en esta función el ejecutable y los parámetros se pasan por separado. Es decir, tendrías que hacer algo así:
Código Delphi [-]
fecha:='a co140207.arJ *.*';   Shellexecute(f_backup.handle,nil,'C:\sistema\backup\ARJ.exe',PChar(fecha),nil,SW_SHOW);

PD: me llamo seoane

tulio 15-02-2007 12:39:42

Gracias seoane

Disculpa por la pifiada

Muy amable por tu ayuda, ya pude resolver mi problema.

Chau

tulio


La franja horaria es GMT +2. Ahora son las 12:37:06.

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