Jump to content
Fivewin Brasil

ref restore do hb_unzipfile


syspel

Recommended Posts

Eu faço assim:

********************************************************************************
Function Unzip( cZip, cSenhaZip)
*-- Faz UnZIP
********************************************************************************
   LOCAL aExtract, lOk := .F.
   
   aExtract := hb_GetFilesInZip( cZip )  // extract all files in zip
   
   IF hb_UnzipFile( cZip, {| cFile | QOut(cFile)  },, cSenhaZip, '.\', aExtract )
      QOut( "Arquivo foi extraido com sucesso" )
      lOk := .T.
   ENDIF

RETURN lOk
Link to comment
Share on other sites

  • 4 weeks later...


IF(Subs(cBack,Len(cBack)-2,3)=="ZIP")

WMensa:="Aguarde... descompactando arquivo." ; OWmensa:Refresh()

aExtract:=HB_GetFilesInZip(cBack)

nRet:=HB_UNZIPFILE(cBack,,,,PastaSistema+"\TMP",aExtract,)

cBack:=PastaSistema+"\TMP\"+aExtract[1]

Warquivo:=aExtract[1] ; OWarquivo:Refresh()

ENDIF

Link to comment
Share on other sites

// Nao esqueca de incluir: hbzip.lib y zlib.lib



#include "FiveWin.ch"

//... FUNCAO ONDE VOCE PEGA O ARQUIVO... E PARTE PARA:

FUNCTION Descomprime( cFile, cPathDescarga )

LOCAL oDlg, nFiles, aFiles, oText, cMsg, oMeter, nActual := 0

DEFAULT cPathDescarga := "C:\BACKUP"

IF FILE( cFIle )

aFiles := hb_GetFilesInZip( cFile )

nFiles := Len( hb_GetFilesInZip( cFile ) )

DEFINE DIALOG oDlg FROM 1, 1 TO 10, 60 ;
TITLE "Espere executando recuperacao de dados..."

@ 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("Descomprimindo"+CRLF+cFile),;
nActual:=nPos/nFiles*100,oMeter:Set(nActual)},.T.,,cPathDescarga,aFiles,NIL ),;
IF(lVal,MsgInfo("Restauracaon completada com Exito"+CRLF+CRLF,cVersion),;
MsgStop("Nao foi podido restaurar os dados")),;
oDlg:END()}

ACTIVATE DIALOG oDlg CENTERED

ELSE

? [Desculpe. nao achei o arquivo para descomprimir]

ENDIF

RETURN NIL



Link to comment
Share on other sites


/*
Compresion / descompresion de ficheros ZIP desde Harbour
(c) 2009 Biel Maimo bmaimo@gmail.com - bielsys.blogspot.com
*/

#include "FiveWin.ch"
#include "Directry.ch"

STATIC cDirLocal

FUNCTION Main()

LOCAL cFile,aFile, aFileBck:={}

cDirLocal:=cFilePath( GetModuleFileName( GetInstance() ) )

cFile:='dados.zip'

aFile:=Directory('*.*') //Todos los ficheros de la capeta donde se ejecuta nuestro ejemplo

AEval(aFile,{|a|AAdd(aFileBck,cDirLocal+a[F_NAME])}) //Añado path a los nombre de archivo

//Comprime( cFile, aFileBck )

? [VOU DESCOMPRIMIR]

DesComprime( cFile, cDirLocal )

RETURN NIL

//---------------------------------------

STATIC FUNCTION Comprime(cFile,aFile)

LOCAL oDlg,oMeter,oText,cMsg,nLen,lVal,nActual:=0

nLen:=Len(aFile)

DEFINE DIALOG oDlg FROM 1, 1 TO 10, 60 TITLE "Espere comprimiendo archivos..."

@ 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_ZIPFILE(cFile,aFile, 9,{|cFile,nPos|oText:SetText('Comprimiendo '+cFile),;
nActual:=nPos/nLen*100,oMeter:Set(nActual)} ),;
IF(lVal,MsgInfo('Compresión completada con éxito'+CRLF+CRLF+;
'Fichero guardado '+cFile,'Bielsys 2009'),;
MsgStop('No pudo realizarse la compresión')),;
oDlg:END()}

ACTIVATE DIALOG oDlg CENTERED

RETURN lVal

//----------------------------------

FUNCTION Descomprime( cFile, cDirLocal )

LOCAL oDlg, nFiles, aFiles, oText, cMsg, oMeter, nActual := 0
LOCAL cVersion := "1.0"

DEFAULT cDirLocal := "C:\BACKUP"

IF FILE( cFIle )

aFiles := hb_GetFilesInZip( cFile )

nFiles := Len( hb_GetFilesInZip( cFile ) )

DEFINE DIALOG oDlg FROM 1, 1 TO 10, 60 ;
TITLE "Espere executando recuperacao de dados..."

@ 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

// AQUI ESTA RETORNANDO A MENSAGEM ERRADA, MAS FUNCIONA.
oDlg:bStart:={||lVal:=Hb_UnZipFile(cFile,{|cFile,nPos|oText:SetText("Descomprimindo"+CRLF+cFile),;
nActual:=nPos/nFiles*100,oMeter:Set(nActual)},.T.,,cDirLocal,aFiles,NIL ),;
IF(lVal,MsgInfo("Restauracaon completada com Exito"+CRLF+CRLF,cVersion),;
MsgStop("Tecle <Enter> Para Finalizar")),;
oDlg:END()}

ACTIVATE DIALOG oDlg CENTERED

ELSE

? [Desculpe. nao achei o arquivo para descomprimir]

ENDIF

RETURN NIL

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...