Page 1 of 1
A vueltas con zip
Posted: Wed Apr 07, 2010 10:36 am
by groiss
Por mas vueltas que le llevo dadas al tema no consigo hacer uso de las funciones para crear ficheros comprimidos ZIP.¿ Sería alguein tan amable de ponerme un pequeño ejemplo que le funcione, así como las librerías harbour que hay que enlazar?
Muchisimas gracias y un saludo
José Luis
Re: A vueltas con zip
Posted: Wed Apr 07, 2010 11:06 am
by Daniel Garcia-Gil
Groiss...
dale un vistazo el blog de biel
http://bielsys.blogspot.com/
(gracias biel)
Re: A vueltas con zip
Posted: Wed Apr 07, 2010 11:23 am
by groiss
Daniel, a ese blog ya llegué hace tiempo, y sigo igual, me revise todo o casi todo lo que hay en estos foros y sigo igual. Fíjate un PRG con sólo esta línea den el programa HB_zipfile("C:\BASES\salida\files.zip","C:\BASES\salida\BOOKPROV.EXE")
Me produce un zip con el nombre files.zip de tamaño 0 bytes, sin nada en su interior. Las rutas esán comprobadas, pero algo me falla.
Las librerias que enlazo:
Code: Select all
echo %fwh%\lib\FiveH.lib %fwh%\lib\FiveHC.lib + >> b32.bc
echo %hdirl%\hbrtl.lib + >> b32.bc
echo %hdirl%\hbvm.lib + >> b32.bc
echo %hdirl%\%GT%.lib + >> b32.bc
echo %hdirl%\hblang.lib + >> b32.bc
echo %hdirl%\hbmacro.lib + >> b32.bc
echo %hdirl%\hbrdd.lib + >> b32.bc
echo %hdirl%\rddntx.lib + >> b32.bc
echo %hdirl%\rddcdx.lib + >> b32.bc
echo %hdirl%\rddfpt.lib + >> b32.bc
echo %hdirl%\dbfcdx.lib + >> b32.bc
echo %hdirl%\hbsix.lib + >> b32.bc
echo %hdirl%\hbdebug.lib + >> b32.bc
echo %hdirl%\hbcommon.lib + >> b32.bc
echo %hdirl%\hbpp.lib + >> b32.bc
echo %hdirl%\hbcpage.lib + >> b32.bc
echo %hdirl%\hbwin.lib + >> b32.bc
echo %hdirl%\hbziparch.lib + >> b32.bc
echo %hdirl%\hbzlib.lib + >> b32.bc
Así que no se que puede suceder.
Un saludo y mil gracias
José Luis
Re: A vueltas con zip
Posted: Wed Apr 07, 2010 2:11 pm
by anserkk
Dear Mr.Jose,
To create a zip
Code: Select all
lOk := hb_ZipFile( cTarget , ;
aFiles , ;
nCompress , ;
bZip , ;
lOverwrite , ; // overwrite
cPassword , ;
lWithPath,; // with path
lWithDrive )
Try as given below
Code: Select all
HB_zipfile("C:\BASES\salida\files.zip",{"C:\BASES\salida\BOOKPROV.EXE"})
If you need to store the file path, then try
Code: Select all
HB_zipfile("C:\BASES\salida\files.zip",{"C:\BASES\salida\BOOKPROV.EXE"}, , , , ,.T., )
Regards
Anser
Re: A vueltas con zip
Posted: Wed Apr 07, 2010 3:25 pm
by Willi Quintana
Veamos:
cFilZip := "archivo.zip"
aFiles := {..............} // array que contiene los nombres de los files a zipear
cPass := <contraseña>
lOk := HB_ZipFile( cFilZip, aFiles, 9, {|| oMeter2:Set(nRow++)} ,.T., cPass, .F., .F. )
9 indica el nivel de compresion, y veras que hay un codeblock para ver el avance en un METER
Salu2
Re: A vueltas con zip
Posted: Fri Apr 09, 2010 6:15 am
by groiss
Muy agradecido a todos, pero cuando he abierto el hilo, es porque todo lo tengo visto y leido, pero por alguna extrañisima circunstancia, mis zip se quedan en 0 kb, y sin nada dentro, y el ejecutable termina de forma anómala.
No he comentado que estoy trabajando con Harbour versión 2.0, pero con la beta anterior tampoco me funcionaba. No se cual puede ser el problema.
Muchas gracias y un saludo
José Luis
Re: A vueltas con zip
Posted: Mon Apr 12, 2010 8:40 am
by groiss
Alguien podría enlazarme este código y colgarme su exe correspondiente, para ver si funciona en mi equipo?
Gracias y un saludo
José Luis
Code: Select all
function main()
HB_zipfile("C:\BASES\salida\files.zip",{"C:\BASES\salida\BOOKPROV.EXE"})
return nil
Re: A vueltas con zip
Posted: Mon Apr 12, 2010 10:55 am
by Andrés G.
José Luís,
Te envío a tu correo el ejemplo compilado, funciona bien.
Recuerdos.
Andrés
Re: A vueltas con zip
Posted: Mon Apr 12, 2010 11:29 am
by groiss
Muchisimas gracias, funciona perfecto, pero la que compilo y enlazo yo, no va ni a tiros, ¿podrías indicarme que buildh.bat estas usando?.
Gracias nuevamente y un saludo
José Luis
Re: A vueltas con zip
Posted: Mon Apr 12, 2010 11:42 am
by Andrés G.
José Luís,
Aquí te pongo el codigo de mi BuildH.bat
Code: Select all
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 9.05 - May. 2009 Harbour development power ³Ü
ECHO ³ (c) FiveTech, 1993-2009 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7 ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST
if "%FWDIR%" == "" set FWDIR=c:\fwh
if "%HBDIR%" == "" set HBDIR=c:\harbour
if "%2" == "/b" set GT=gtwin
if not "%2" == "/b" set GT=gtgui
ECHO Compiling...
set hdir=%HBDIR%
set hdirl=%hdir%\lib
set fwh=%FWDIR%
set bcdir=c:\bcc55
%hdir%\bin\harbour %1 /n /i%fwh%\include;%hdir%\include /w /p %2 %3 > comp.log
IF ERRORLEVEL 1 GOTO COMPILEERRORS
@type comp.log
echo -O2 -e%1.exe -I%hdir%\include -I%bcdir%\include %1.c > b32.bc
%bcdir%\bin\bcc32 -M -c @b32.bc
:ENDCOMPILE
IF EXIST %1.rc %bcdir%\bin\brc32 -r %1
rem IF EXIST %1.rc %vcdir%\bin\rc -r -d__FLAT__ %1
echo %bcdir%\lib\c0w32.obj + > b32.bc
echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc
echo %hdirl%\hbZipArc.lib + >> b32.bc
echo %hdirl%\hbmzip.lib + >> b32.bc
echo %hdirl%\hbzlib.lib + >> b32.bc
echo %fwh%\lib\FiveH.lib %fwh%\lib\FiveHC.lib + >> b32.bc
echo %hdirl%\hbrtl.lib + >> b32.bc
echo %hdirl%\hbvm.lib + >> b32.bc
echo %hdirl%\%GT%.lib + >> b32.bc
echo %hdirl%\hblang.lib + >> b32.bc
echo %hdirl%\hbmacro.lib + >> b32.bc
echo %hdirl%\hbrdd.lib + >> b32.bc
echo %hdirl%\rddntx.lib + >> b32.bc
echo %hdirl%\rddcdx.lib + >> b32.bc
echo %hdirl%\rddfpt.lib + >> b32.bc
echo %hdirl%\hbsix.lib + >> b32.bc
echo %hdirl%\hbdebug.lib + >> b32.bc
echo %hdirl%\hbcommon.lib + >> b32.bc
echo %hdirl%\hbpp.lib + >> b32.bc
echo %hdirl%\hbcpage.lib + >> b32.bc
echo %hdirl%\hbwin.lib + >> b32.bc
rem Uncomment these two lines to use Advantage RDD
rem echo %hdirl%\rddads.lib + >> b32.bc
rem echo %hdirl%\Ace32.lib + >> b32.bc
echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\uuid.lib + >> b32.bc
echo %bcdir%\lib\import32.lib + >> b32.bc
echo %bcdir%\lib\psdk\odbc32.lib + >> b32.bc
echo %bcdir%\lib\psdk\nddeapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\iphlpapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\msimg32.lib + >> b32.bc
echo %bcdir%\lib\psdk\rasapi32.lib, >> b32.bc
IF EXIST %1.res echo %1.res >> b32.bc
if %GT% == gtwin %bcdir%\bin\ilink32 -Tpe -s @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
if %GT% == gtgui %bcdir%\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
%1
GOTO EXIT
ECHO
rem delete temporary files
@del %1.c
:COMPILEERRORS
@type comp.log
ECHO * Compile errors *
Pause
GOTO EXIT
:LINKERROR
ECHO * Linking errors *
Pause
GOTO EXIT
:SINTAX
ECHO SYNTAX: Build [Program] {-- No especifiques la extensi¢n PRG
ECHO {-- Don't specify .PRG extension
Pause
GOTO EXIT
:NOEXIST
ECHO The specified PRG %1 does not exist
Pause
:EXIT
Espero que te sirva.
Recuerdos,
Andrés
Re: A vueltas con zip
Posted: Mon Apr 12, 2010 11:52 am
by groiss
Muchisimas gracias.
Problema resuelto, bastó con cambiar el ordern de proceso de las librerías, porniendo:
hbziparc.lib
hbmzip.lib
hbzlib.lib
antes de las propias de Fivewin.
Un saludo
José Luis