FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour descomprimir archivo zip
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
descomprimir archivo zip
Posted: Tue Jun 04, 2013 11:25 PM
Hola compa帽eros, hace a帽os que tengo una funci贸n para comprimir los dbf y ftp para tener un backup. Nunca hice que el programa los descomprimiera, ahora necesito hacerlo pero no puedo hacerlo funcionar. Uso los ejemplos del blog de xBielsys.

prob茅 primeramente con
Code (fw): Select all Collapse
 FUNCTION descomprime()

聽 聽 聽 聽 聽 聽 聽 聽 聽 聽
聽 聽 聽 聽 聽 聽 聽 聽 if 聽 hb_UnZipFile("k:\fivehme\prueba\archivo.zip")
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽? "exito "
聽 聽 聽 聽 聽 聽 聽 聽 else
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽? "no"
聽 聽 聽 聽 聽 聽 聽 聽 endif 聽 聽

[code]

el resultado es no

y luego

[code] FUNCTION descomprime()

聽 聽LOCAL oDlg,nFiles,oText, cMsg, oMeter,nActual:=0
聽 聽LOCAL cFile := 聽cGetfile("archivo(*.zip) |*.zip|","Seleccionar archivo")
聽 聽LOCAL lval := .t.
聽 聽LOCAL cDestino := cgetdir()

聽 聽
聽 聽nFiles:=Len(hb_GetFilesInZip(cFile)) 聽 聽  


聽
聽 聽DEFINE DIALOG oDlg FROM 1, 1 TO 10, 60 TITLE "Espere ejecutando recuperaci贸n de datos..."

聽 聽@ 0.5, 2 聽SAY oText VAR cMsg SIZE 180, 20 OF oDlg

聽 聽@ 2, 2 METER oMeter VAR nActual TOTAL 100 OF oDlg SIZE 200, 20

聽 聽oDlg:bStart:={||lval:= hb_UnZipFile(cFile,{|cFile,nPos|oText:SetText('Descomprimiendo'+CRLF+cFile),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽nActual:=nPos/nFiles*100,oMeter:Set(nActual)},,,cDestino ),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 IF(lval,MsgInfo('Restauracion completada con 茅xito'+CRLF+CRLF,'Bielsys 2009'),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽MsgStop('No se han podido restaurar los datos')),;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oDlg:END()} 聽 聽 聽 


聽 聽ACTIVATE DIALOG oDlg CENTERED

RETURN NIL


el resultado tambi茅n es negativo

El archivo que quiero descomprimir es el creado con la funci贸n hb_zipfile. Si uso el winrar los muestra perfectamente

utilizo xharbour 1.21 y bcc582

Gracias por su atenci贸n
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: descomprimir archivo zip
Posted: Wed Jun 05, 2013 12:11 AM
Surgom:

Yo utilizo este c贸digo con xHarbour y FW0810 y va bien.

Code (fw): Select all Collapse
/*
* -------------------------------------------------------------------------*
* -------------------------------------------------------------------------*
*/
FUNCTION Importar()
LOCAL aFiles
LOCAL aExtra聽 聽 := {""}
LOCAL lStatus
LOCAL nVez聽 := 0

CursorWait()

aFiles := hb_GetFilesInZip(cZipFile)

FOR nVez := 1 TO LEN(aFiles)
聽 聽 IF ALLTRIM(cFileExt(aFiles[nVez])) == "ETI"
聽 聽 聽 聽 AADD(aExtra,aFiles[nVez])
聽 聽 ENDIF
NEXT

lStatus := hb_UnZipFile(cZipFile,,(.T.),,cDirDest,aExtra,NIL)

IF lStatus
聽 聽 MsgInfo("El archivo se import贸 exitosamente !",oApp:cAplicacion)
ENDIF
RETURN (.T.)


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 880
Joined: Fri Jan 12, 2007 08:35 PM
Re: descomprimir archivo zip
Posted: Wed Jun 05, 2013 04:03 AM
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

s茅蕦菨晒 谉蓯 蓯蕠s菨 opun莎 菨蕠s菨
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
Re: descomprimir archivo zip
Posted: Wed Jun 05, 2013 05:18 AM
Aida

Yo tambi茅n pase por lo mismo, y en el foro encontr茅 respuestas, hice una peque帽a variaci贸n que muestro y qued贸 as铆:

Descomprime(cFileZip,cPathDesempaque)


FUNCTION Descomprime(cFile,cPathDescarga)
LOCAL oDlg,nFiles,aFiles,oText, cMsg, oMeter,nActual:=0

DEFAULT cPathDescarga:="E:\"

IF FILE(cFIle)

aFiles:=hb_GetFilesInZip(cFile)
// aFiles:=hb_GetFilesInZip(cFile,.t.)
nFiles:=Len(hb_GetFilesInZip(cFile)) // yo hice esta variacion que quite el .t. y desempaca en cPathDescarga


DEFINE DIALOG oDlg FROM 1, 1 TO 10, 60 TITLE "Espere ejecutando recuperaci贸n de datos..."
@ 0.5, 2 SAY oText VAR cMsg SIZE 180, 20 OF oDlg
@ 2, 2 METER oMeter VAR nActual TOTAL 100 OF oDlg SIZE 200, 20
oDlg:={||lVal:=Hb_UnZipFile(cFile,{|cFile,nPos|oText:SetText("Descomprimiendo"+CRLF+cFile),;
nActual:=nPos/nFiles*100,oMeter:Set(nActual)},.T.,,cPathDescarga,aFiles,NIL ),;
IF(lVal,MsgInfo("Restauracion completada con 茅xito"+CRLF+CRLF,cVersion),;
MsgStop("No se han podido restaurar los datos")),;
oDlg:END()}

ACTIVATE DIALOG oDlg CENTERED

ENDIF

RETURN NIL


Ojo: en tu fichero de enlace agrega : hbzip.lib y zlib.lib
Luis Ponce
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Re: descomprimir archivo zip
Posted: Wed Jun 05, 2013 12:08 PM

Gracias a todos funciona bien, hoy iba a probar con poner el array de los archivos comprimidos, me pareci贸 que por ah铆 iba el problema y Uds me los confirmaron.

Otra vez muchas gracias

Luis

Continue the discussion