Jump to content
Fivewin Brasil

El DBFCDX ... el RDD!!


kapiaba

Recommended Posts

maravilha... documentando.

 

 
/*
   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:='datos.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 )
   DesComprime( cFile )
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
//----------------------------------
STATIC FUNCTION Descomprime(cFile)
   LOCAL oDlg,nFiles,oText, cMsg, oMeter,nActual:=0
   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)} ),;
                          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
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...