Page 1 of 1

Necesito una mano con hbzip

Posted: Sun Jul 23, 2006 2:03 pm
by jllinas
Hola a todos,

A ver si alguien me puede aclarar esto, pues no me funciona como antes :?

Recien el mes pasado cambié a FWH2.7 (+xHarbour 0.99.60, provisto por AL). Desde antes de eso, pero sobre todo ahora, la rutina de realizar respaldos no me funciona. Aparece un "Harbour Exception" que no me permite seguir, el cual curge al invocar la funcion HB_ZIPFILE(), y simplemente se cancela la ejecución.

Para permitirme probar si acaso era yo, tomé el ejemplo que aparece en la carpeta TEST de xHarbour.org, y lllevé este ejemplo a ejecución con FWH (simplemente le agregué el manejo con dialogos), y fue compilado con BUILDX.BAT que aparece en SAMPLES de FWH. TODO FUNCIONO DE MARAVILLAS (puedo subir este ejemplo a Hyerload, si acaso es necesario), pero en la rutina de respaldos de nuestro sistema (invocando la misma funcion HB_ZIPFILE).... No me funciona!!!!

He creido que se trataba del makefile que utilizamos para crear nuestro sistema - en particular, las librerias y el orden en que son incluidas- y he intendado varias maneras de hacerlo, pero sin exito.

No se si alguien ya paso por esto, pero distribuir nuestro sistema sin la rutina de respaldo es incomodo para nuestros usuarios... siempre tengo la alternativa de colocar otro programa solo para esto, pero la distribución es algo incomoda.

¿Alguien que pueda tenderme una mano?

Este es nuestro Makefile (creado con HBMAKE):

---------------------------------------
#BCC
VERSION=BCB.01
#!ifndef BCB
BCB = c:\BORLAND\BCC55
#!endif

#!ifndef BHC
BHC = C:\XHARBOUR
#!endif

RECURSE= NO

COMPRESS = NO
EXTERNALLIB = YES
XFWH = YES
FILESTOADD = 1
WARNINGLEVEL = 0
USERDEFINE =
USERINCLUDE =
FWH = c:\fwh27
GUI = YES
MT = NO
SRC05 = c:\db3\db3p\ss\conta1\wsfp\xobj
PROJECT = c:\db3\db3p\ss\conta1\wsfp\WSFPH.exe $(PR)
OBJFILES = $(SRC05)\wsfp.obj //
$(SRC05)\ADOCONN.obj //
$(SRC05)\ADORS.obj //
$(SRC05)\BITS.obj //
.
.
.
$(SRC05)\wNomiZ.obj //
$(SRC05)\wRpt_Spa.obj //
$(SRC05)\wCch_Cta.obj $(OB)

PRGFILES = wsfp.prg //
ADOCONN.PRG //
ADORS.PRG //
BITS.PRG //
.
.
.
\db3\db3p\ss\conta1\Nomina\Win\wNomiZ.prg //
\db3\db3p\ss\conta1\Nomina\Win\wRpt_Spa.prg //
\db3\db3p\ss\conta1\CCHICA\Win\wCch_Cta.prg $(PS)

OBJCFILES = $(SRC05)\VIEW_NET.obj $(OBC)
CFILES = VIEW_NET.C $(OB)
RESFILES = wsfp.rc
RESDEPEN = wsfp.res
TOPMODULE = \DB3\DB3P\SS\CONTA1\WSFP\WSFP.PRG
LIBFILES = $(FWH)\libx\fivehx.lib $(FWH)\lib\fivehc.lib rtl.lib vm.lib gtgui.lib pcrepos.lib lang.lib macro.lib rdd.lib dbfntx.lib dbfcdx.lib dbffpt.lib hbsix.lib debug.lib common.lib pp.lib hbzip.lib $(BHC)\lib\sbuttonhx.lib $(BHC)\lib\btnget32x.lib
EXTLIBFILES = hbzip.lib
DEFFILE =
HARBOURFLAGS = -m -w0
CFLAG1 = -OS $(CFLAGS) -d -c -L$(BHC)\lib;$(FWH)\lib
CFLAG2 = -I$(BHC)\include;$(BCB)\include
RFLAGS =
LFLAGS = -L$(BCB)\lib\obj;$(BCB)\lib;$(BHC)\lib -Gn -M -m -s -Tpe -x -aa -L$(FWH)\lib
IFLAGS =
LINKER = ilink32

ALLOBJ = c0w32.obj $(OBJFILES) $(OBJCFILES)
ALLRES = $(RESDEPEN)
ALLLIB = $(LIBFILES) cw32.lib import32.lib
.autodepend

#DEPENDS

#COMMANDS
.cpp.obj:
$(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $**

.c.obj:
$(BCB)\BIN\bcc32 -I$(BHC)\include $(CFLAG1) $(CFLAG2) -o$* $**

.prg.obj:
$(BHC)\bin\harbour -D__EXPORT__ -n -go -I$(BHC)\include $(HARBOURFLAGS) -I$(FWH)\include -o$* $**

.rc.res:
$(BCB)\BIN\brcc32 $(RFLAGS) $<

#BUILD

$(PROJECT): $(CFILES) $(OBJFILES) $(RESDEPEN) $(DEFFILE)
$(BCB)\BIN\$(LINKER) @&&!
$(LFLAGS) +
$(ALLOBJ), +
$(PROJECT),, +
$(ALLLIB), +
$(DEFFILE), +
$(ALLRES)
!
--------------------------------------------

Uso FWH2.7 + xHarbour 0.99.60 + Borland 5.5.1

Gracias anticipadas,

Posted: Sun Jul 23, 2006 5:00 pm
by RuFer
Julio:

No uso xHarbour, pero puedes encontrar una solucion en
www.reportdesigner.info ahí tienes
BackUpBuilder que es gratuito y es para hacer respaldos.


Saludos.

Ruben Fernandez.

Posted: Mon Jul 24, 2006 12:17 pm
by jllinas
Gracias por tu sugerencia...

No encontre nada de BackupBuilder, sino mas bien algo llamado EasyBackup.

Vere esto, pero si alguien mas tiene otra sugerencia, seria agradecido ! :D

Posted: Wed Aug 02, 2006 11:56 pm
by Armando Picon
Julio

Es posible que te sirva lo que en su momento escribí para empaquetador de Instaladores. Puedes compilarlo con la versión que quieras de (x)Harbour a condición que soporte hzlib.

El enlace en HyperUpLoad es el siguiente

http://hyperupload.com/download/0262576 ... r.zip.html

Atentamente

Armando

Posted: Thu Aug 03, 2006 7:17 am
by Antonio Linares
Julio,

> pero sobre todo ahora, la rutina de realizar respaldos no me funciona

Has probado a extraer ese código y construirlo aisladamente de tu aplicación y ver si te funciona ?

Similar a lo que has hecho con el ejemplo de xharbour, pero usando tu código.

Posted: Thu Aug 03, 2006 12:39 pm
by karinha
Armando Picon wrote:Julio

Es posible que te sirva lo que en su momento escribí para empaquetador de Instaladores. Puedes compilarlo con la versión que quieras de (x)Harbour a condición que soporte hzlib.

El enlace en HyperUpLoad es el siguiente

http://hyperupload.com/download/0262576 ... r.zip.html

Atentamente

Armando

Armando, Por favor, porque no si puede Seleccionar toda la Carpeta?

Solo uno por uno, és posible seleccionar todos los archivos de la carpeta de origen?

La Compilación paso perfecta. Saludos.

Posted: Fri Aug 04, 2006 4:38 pm
by Armando Picon
Karinha

Te respondí en otra parte del foro donde te explico porqué selecciona uno por uno.

Hay variantes que pueden desarrollarse; pero todas, de una forma u otra, van a partir desde las rutinas básicas que desarrollé.

He subido a HyperUpload una versión corregida donde ya aparece el tamaño que tiene el archivo compactado. Este es el enlace:

http://hyperupload.com/download/01303c6 ... 2.zip.html

Un abrazo

Armando

karinha wrote:
Armando Picon wrote:Julio

Es posible que te sirva lo que en su momento escribí para empaquetador de Instaladores. Puedes compilarlo con la versión que quieras de (x)Harbour a condición que soporte hzlib.

El enlace en HyperUpLoad es el siguiente

http://hyperupload.com/download/0262576 ... r.zip.html

Atentamente

Armando

Armando, Por favor, porque no si puede Seleccionar toda la Carpeta?

Solo uno por uno, és posible seleccionar todos los archivos de la carpeta de origen?

La Compilación paso perfecta. Saludos.
Pronto, voy a realizar una nueva versión para seleccionar varios de los archivos de la carpeta de origen (es posible que esto sea lo que necesitas actualmente).

Posted: Fri Aug 04, 2006 11:02 pm
by Raymundo Islas M.
Julio

Tambien pase por algo parecido, he estado trabajando estos dias en un modulo para compresion/descompresion de archivos y con ayuda del buen amigo Carlos Vargas ya lo logre.

Este codigo que anexo, esta trabajando al 1000% OK en xHarbour 0.99.60 y FWH 2.7, inclusive poniendole password al archivo ZIP :wink:


PROCEDURE Main
LOCAL nQ, lZipOk, acFiles, aExtract
acFiles := { ".\NewMaster\USRALIST.DBF",".\NewMaster\MSTMARS.DBF",".\NewMaster\MSTMODS.DBF", ;
".\NewMaster\MSTSISS.DBF",".\NewMaster\MSTSUBS.DBF",".\NewMaster\MSTPRVS.DBF", ;
".\NewMaster\MSTFABS.DBF",".\NewMaster\MSTPRDS.DBF",".\NewMaster\MSTITMS.DBF", ;
".\NewMaster\MSTPRVF.DBF",".\NewMaster\MSTFABP.DBF",".\NewMaster\MSTITMA.DBF", ;
".\NewMaster\MSTITME.DBF",".\NewMaster\MSTMTRS.DBF" }


// Comprimir al Zip
hb_ZipFile( "RSUPDTSM.ZIP", acFiles, 9, NIL, .T., "pswrd", .F., NIL )

// Descomprimir del ZIP
aExtract := hb_GetFilesInZip( "XArchivo.Zip" )
HB_UNZIPFILE( "XArchivo.Zip",,.T.,"pswrd", "c:\testzip", aExtract,NIL ) // Todos !!
HB_UNZIPFILE( "XArchivo.Zip",,.T.,"pswrd", ".\", "usralist.dbf",NIL ) // X archivo !!

Solo ajustalo a tus necesidades.


Espero te sirva

Saludos

Posted: Sat Aug 05, 2006 8:40 pm
by Armando Picon
Karinha

Lo prometido es deuda. Aqui va el enlace para la versión del compactador que me parece necesitas.

Puedes seleccionar desde varios directorios y en grupos.

http://hyperupload.com/download/02d92cf ... 3.Zip.html

Un abrazo

Armando

Posted: Sun Aug 06, 2006 4:26 am
by jllinas
Bueno mis amigos....

Seguí lo que recomendó AL, e incluí el ejemplo TESTZIP en mi aplicacion, sustituyendo la rutina para hacer los respaldos, y NO FUNCIONO.

Compilandolo totalmente solo, fuera de mi aplicacion (compilado con BUILDX.BAT), se crea y ejecuta correctamente. Esto me indica que lo que esta mal es el proceso de crear el ejecutable de mi aplicacion.

Tambien compilo los ejemplos que aparecen aqui (ZIPPER3) y me funcionan de maravilla (compilados con BUILDX.BAT), pero....

Estoy utilizando HBMAKE, pero parece que algo alli no construye bien el archivo .BC, y solo para despejar las dudas, pregunto esto ahora:

¿Alguien tendrá un archivo .MAK de ejemplo para compilar una aplicacion donde existen varios .PRG (en diferentes carpetas) que funcione?

Uso FW27 + Borland + xHarbour 0.99.60

Gracias anticipadas

Posted: Sun Aug 06, 2006 6:41 am
by Antonio Linares
Julio,

Revisa el directorio fwh\makes. Estan probados y funcionando correctamente tanto con Borland como con Microsoft.

Posted: Mon Aug 07, 2006 3:15 pm
by carlos vargas
Antonio y a todos.

Hace algun tiempo, desde la incorporacion de la lib pcproc en xharbour, tuve problemas con el programa que hice de respaldo llamado xbackuplite. especificamente los problemas eran los siguientes.

la funcion
directoryrecurse donde antes regresaba un arreglo con x archivos ahora retornaba un arreglo en blanco.

y la funcion de descompresion no funcionaba.

Descubri que el los problemas radicaban en los siguiente.

El problema de descompresion se solucionaba incluyendo la libreria pcproc, aun sin ella el ejecutable es creado pero falla con GPF, incluyendola se corrige.

El problema de directoryrecurse radica en la posicion de la libreria pcproc en el script de enlace del ejecutable

por ejemplo yo uso xmate para misa app.

este es la lista de enlace que actualmente me funciona

Code: Select all

D:\misapp\blite\Obj\xblite.Obj +
D:\misapp\blite\Obj\boxget.Obj +
D:\borland\bcc55\Lib\C0W32.OBJ, +
D:\misapp\blite\Bin\xblite.Exe, +
, +
D:\fwh\lib\patchx.lib +
D:\fwh\lib\tsbrowsex.lib +
D:\Fwh\LIB\FiveHX.lib +
D:\Fwh\LIB\Fivehc.lib +
D:\borland\xharbour\Lib\hbzip.lib +
D:\borland\xharbour\Lib\vm.lib +
D:\borland\xharbour\Lib\rtl.lib +
D:\borland\xharbour\Lib\pcrepos.lib +           //OJO aca funciona
D:\borland\xharbour\Lib\gtwin.lib +
D:\borland\xharbour\Lib\lang.lib +
D:\borland\xharbour\Lib\rdd.lib +
D:\borland\xharbour\Lib\macro.lib +
D:\borland\xharbour\Lib\pp.lib +
D:\borland\xharbour\Lib\dbfntx.lib +
D:\borland\xharbour\Lib\dbfcdx.lib +
D:\borland\xharbour\Lib\dbffpt.lib +
D:\borland\xharbour\Lib\hbsix.lib +
D:\borland\xharbour\Lib\common.lib +
D:\borland\xharbour\Lib\codepage.lib +
D:\borland\bcc55\Lib\CW32.LIB +
D:\borland\bcc55\Lib\IMPORT32.LIB,, +
D:\misapp\blite\Resource\XBLITE.Res

Code: Select all

D:\misapp\blite\Obj\xblite.Obj +
D:\misapp\blite\Obj\boxget.Obj +
D:\borland\bcc55\Lib\C0W32.OBJ, +
D:\misapp\blite\Bin\xblite.Exe, +
, +
D:\fwh\lib\patchx.lib +
D:\fwh\lib\tsbrowsex.lib +
D:\Fwh\LIB\FiveHX.lib +
D:\Fwh\LIB\Fivehc.lib +
D:\borland\xharbour\Lib\hbzip.lib +
D:\borland\xharbour\Lib\vm.lib +
D:\borland\xharbour\Lib\rtl.lib +
D:\borland\xharbour\Lib\gtwin.lib +
D:\borland\xharbour\Lib\lang.lib +
D:\borland\xharbour\Lib\rdd.lib +
D:\borland\xharbour\Lib\macro.lib +
D:\borland\xharbour\Lib\pp.lib +
D:\borland\xharbour\Lib\dbfntx.lib +
D:\borland\xharbour\Lib\dbfcdx.lib +
D:\borland\xharbour\Lib\dbffpt.lib +
D:\borland\xharbour\Lib\hbsix.lib +
D:\borland\xharbour\Lib\common.lib +
D:\borland\xharbour\Lib\codepage.lib +
D:\borland\xharbour\Lib\pcrepos.lib +           //OJO aca NO funciona
D:\borland\bcc55\Lib\CW32.LIB +
D:\borland\bcc55\Lib\IMPORT32.LIB,, +
D:\misapp\blite\Resource\XBLITE.Res
se corrigio solamente moviendo de posicion la lib en la lista :-)


el por que no lo se :-(, solo hice este movimiento.

salu2
carlos vargas

Posted: Mon Jun 18, 2007 8:26 pm
by elmoiquique
yo igual tenia el mismo problema no me funcionaba el arreglo que llenaba con datos, solo devolvia en blanco, pero al mover la libreria pcrepos a otra posicion mas arriba, funciono sin problemas, ahora el motivode la posicon de esta no lo se, pero me funciona