FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problema con zip
Posts: 234
Joined: Tue Sep 01, 2009 07:55 AM
Problema con zip
Posted: Fri Nov 27, 2009 07:43 AM

La consulta no es precisamente sobre fivewin, sino sobre harbour, ya que las funciones de manejo de ZIPs de fivewin no consigo ponerlas en marcha, por lo tanto uso directamente las de harbour, que tampoco consigo que me funcionen.
Tengo entendido que la sintaxis de hb_zipfile es
HB_ZipFile( cZipName, cFile | aFiles, nLevel, bBlock, lOverRide, cPassWord, lWithPath, lWithDrive, pFileProgress )

Lo único que consigo es que me cree un zip vacio, con esta instruccion
handle:=HB_zipfile("C:\BASES\salida\files","g:\datos\personal\datos\BAJAS.DBF")

Evidentemente algo hago mal, pero ¿que?

Gracias y un saludo
José Luis

Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Re: Problema con zip
Posted: Fri Nov 27, 2009 01:40 PM
Esto está trabajando bién


Code (fw): Select all Collapse
*******************************************************************************
static procedure GrabaZip(cOrig,aFileList)
*******************************************************************************
local     cFile ,;
          aFiles,;
                    nItem,;
                    cString,;
                    cReturn:="",;
                    nI,;
                    na,;
                    aFil,;
                    cFilepath,;
                    lContinue

cFile:=cGetFile( "*.zip","Seleccione Archivo a Exportar" )
if len(alltrim(cFile))<>0
     lContinue:=.t.
     if file(cfile)
         if !MsgNoYEs("Archivo Ya Existe, Desea Sobre-Escribir","Exportar")
             lContinue:=.f.
         endif
     endif
     if lContinue
       cursorwait()
     cFilePath := AllTrim( cOrig )
       for nI=1 to len(aFilelist)
       cReturn   += AllTrim( cOrig ) +aFilelist[nI]
       next
     cString   := cReturn

     aFiles := {}
     for nI=1 to len(aFilelist)
       aFil := Directory( ( cFilePath +aFilelist[nI] ) )
       //aEval( aFil, { | uFile | AAdd( aFiles, uFile ) } )
         for  na=1 to len(afil)
          AAdd( aFiles, afil[na,1] )
            next
       next

     // HB_ZipFile( <cFile>, <cFileToCompress> | <aFiles>, <nLevel>, <bBlock>, <lOverwrite>, <cPassword>, <lWithPath>, <lWithDrive>, <pFileProgress> )
     // cFile: filename of the zip file.
     // cFileToCompress | aFiles: a file or a list (array) of files to compress.
     // nLevel: compression level (value from 0 to 9).
     // Block: code block to execute while compressing.
     // lOverWrite: overwrite existing files or not.
     // cPassword: password to encrypt the files.
     // lWithPath: store the file path or not.
     // lWithDrive: store the drive letter and path or not.
     // pFileProgress: code block for file progress.

     HB_ZIPFILE( cfile, afiles,,,,, .t. )
       cursorarrow()
       *wqout( HB_GetFilesInZip( cfile ) )
     endif
endif

return

*******************************************************************************
static procedure LeeZip()
*******************************************************************************
local     cFile ,;
          aFiles,;
                    nItem

cFile:=cGetFile( "*.zip","Seleccione Archivo a Importar" )
if len(alltrim(cFile))<>0
     if msgnoyes('Archivos en el Sistema Seran Sustituidos, Desea Continuar',"Importar")
     aFiles    :=HB_GetFilesInZip( cFile )
     HB_UNZIPFILE( cFile, { | x, y | QOUT( "Archivo ", STR( y, 1 ), " se está extrayendo." ) },,, '.\', aFiles )
     //for nItem:=1 to len( aFiles )
       //  HB_UNZIPFILE( "Angelito.zip", { | x, y | QOUT( "Archivo ", STR( y, 1 ), " se está extrayendo." ) },,, '.\', aFiles[ nItem ] )
       // next
    delfile('','*.cdx')
      MsgMeter( { | oMeter, oText, oDlg |  reindexa(oMeter, oText, oDlg)} )
      n_use('Acceso','=',exclusivo,0)
    endif
endif


return


Es solo un código de ejemplo

Espero te ayude

Saludos
:-)
Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql

Continue the discussion