kapiaba Posted March 22, 2013 Report Share Posted March 22, 2013 http://www.xcsa.com.ar/cvnews/clipper/cvn0307.htm Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 22, 2013 Author Report Share Posted March 22, 2013 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 Quote Link to comment Share on other sites More sharing options...
Daniel Lopes Filho Posted March 23, 2013 Report Share Posted March 23, 2013 gostei do exemplo parabens Quote Link to comment Share on other sites More sharing options...
Daniel Lopes Filho Posted March 23, 2013 Report Share Posted March 23, 2013 tem como melhorar a compactação ? fiz aqui com o winrar 13,7 MB (14.422.016 bytes) e com o exemplo acima 23,6 MB (24.821.760 bytes) com os mesmos arquivos Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 25, 2013 Author Report Share Posted March 25, 2013 Se não me engano, a Hb_ZIPFILE, usa os mesmo comandos dos PKZIP.EXE Ex.: PKZIP -EX NOMEARQ.ZIP Não tenho certeza. Abs, Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.