Compilar com ziplib

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

coucello
Usuário Nível 1
Usuário Nível 1
Mensagens: 13
Registrado em: 19 Jan 2010 18:47
Localização: Porto Velho

Compilar com ziplib

Mensagem por coucello »

Boa tarde, senhores.
Estou tendo dificuldades para compilar uma rotina para utilizar o ziplib. O exemplo está em seguida e o erro também. Será que poderiam me ajudar?
Agradeço, desde já.

FUNCTION testezip()
local nhzipfile

nhzipfile := HB_ZipOpen( "zipfile.zip", HB_ZIP_OPEN_ADDINZIP )
for nveces = 1 to len ( afiles )
HB_ZipStoreFile( nhzipfile,afiles[nveces])
next nveces
hb_zipclose(nhzipfile)

RETURN nil

Erro:

Unresolved external _HB_FUN_HB_ZIPOPEN
Unresolved external _HB_FUN_HB_ZIPSTOREFILE
Unresolved external _HB_FUN_HB_ZIPCLOSE
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Re: Compilar com ziplib

Mensagem por clodoaldomonteiro »

Essa é minha rotina:

Código: Selecionar todos

//////////////////
//use a HBZIP.LIB
/////////////////
#include "Directry.ch"
#include "common.ch"

PROC GCOMPAC
   local mcaminho,marqarj,marqarja,marq,mtot:=0,mtamdisk,mdisco
   local aDir1:=Directory(DRVDBF+"*.db?")
   local aDir2:=Directory(DRVDBF+"*.mem")
   local aDir3:=Directory(DRVDBF+"*.jpg")
   local aDir4:=Directory(DRVDBF+"DB*.*")
   local afiles:={},aTamanho:={}
   Local x
   local nLen
   local aGauge

   mcaminho:=DRVdbf
   marqzip :='BKSCP_M'+M->pe_mm+'_'+alltrim(M->par_rota)
   mtamdisk:=if(mdrv $ 'AB','-v1440000','-v20000000')

   For x:=1 to len(aDir1)
      aadd(aFiles  ,drvdbf+adir1[x,1])
      aadd(aTamanho,adir1[x,2])
   next
   For x:=1 to len(aDir2)
      aadd(aFiles  ,drvdbf+adir2[x,1])
      aadd(aTamanho,adir2[x,2])
   next
   For x:=1 to len(aDir3)
      aadd(aFiles  ,drvdbf+adir3[x,1])
      aadd(aTamanho,adir3[x,2])
   next
   For x:=1 to len(aDir4)
      aadd(aFiles  ,drvdbf+adir4[x,1])
      aadd(aTamanho,adir4[x,2])
   next

   nLen=len(afiles)  // quantidade de arquivos
   mtotBytes:=0      // total de bytes, vai acrescentando

   if hb_zipfile( drvdbf+marqzip, afiles, 9, {|cFile,nPos| eProgresso( cFile, nPos, nLen) },.t., ,.f.,.f., {|cFile,nPos2| cProgressoFile( cFile, nPos2) } )
      mOrigem :=drvdbf+marqzip+'.zip'
      mDestino:=mDrv  +':\'+'BKSCP_A'+M->ps_aa+'_'+Alltrim(M->par_rota)+'.zip'

      COPY FILE (mOrigem) TO (mDestino)

      if fError() = 0                  // se nÆo teve nenhum erro ao copiar
         dbox("BACKUP COMPACTADO FOI EFETUADO COM SUCESSO.|O arquivo "+mDestino+" foi copiado na Unidade de Disco "+mdrv+':\',13,,,,"ATENۂO "+ALLTRIM(USUARIO)+'!')
      else
         dbox('A OPERAۂO FALHOR.|Erro encontrado ao tentar copiar|o arquivo gerado para o disco de destino.',13,,,,"ATENۂO "+ALLTRIM(USUARIO)+'!')
      endif
   else
      dbox("A OPERAۂO FALHOR.|ERROS FORAM DETECTADOS DURANTE O BACKUP.",13,,,,"ATENۂO "+ALLTRIM(USUARIO)+'!')
   endif
   cbc1()
   CHDIR(direxe)
   RETU              // FIM DE GCOMPAC

Código: Selecionar todos

   Static Function eProgresso(vtxt,xPerc,wTot)
      ************************************
      @ l_s+06,c_s+13 SAY space(80)
      @ l_s+06,c_s+13 SAY vtxt      // nome do arquivo
      @ l_s+08,c_s+13 SAY tran((xPerc/wTot)*100, '@E 999.99')+" %"
      @ l_s+09,c_s+66 SAY tran( xPerc, '@E 99,999') + ' / ' + tran( wTot, '@E 99,999') + ' Arqs'
      return nil

      ************************************
   Static Function cProgressoFile( cFile, nPos2 )
      @ l_s+09,c_s+13 SAY space(50)
      @ l_s+09,c_s+13 SAY Alltrim(tran( cFile, '@E 999,999,999'))+" / "+alltrim(tran( nPos2, '@E 999,999,999'))+' bytes'
      if cFile = nPos2
         mTotBytes+=nPos2
         @ l_s+08,c_s+66 SAY tran( mTotBytes, '@E 999,999,999') + ' bytes'
      endif
      return nil
Voce pode enxugar ela e colocar no seu sistema.
A função DBOX é uma função que mostra uma caixa de diálogo, vc pode substituir por outra do HB.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
coucello
Usuário Nível 1
Usuário Nível 1
Mensagens: 13
Registrado em: 19 Jan 2010 18:47
Localização: Porto Velho

Re: Compilar com ziplib

Mensagem por coucello »

Obrigado Clodoaldo. Vou testar e te retorno.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Compilar com ziplib

Mensagem por sygecom »

Olá coucello,
É Harbour ou xHarbour ? Qual a versão ? e post o seu script de compilação.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Re: Compilar com ziplib

Mensagem por clodoaldomonteiro »

Você pode excluir a função CBC1().

Eu usu as seguintes libs:
CT.LIB
DBFCDX.LIB
HBZIP.LIB
PCREPOS.LIB
WHAT32.LIB
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
coucello
Usuário Nível 1
Usuário Nível 1
Mensagens: 13
Registrado em: 19 Jan 2010 18:47
Localização: Porto Velho

Re: Compilar com ziplib

Mensagem por coucello »

Leonardo, comecei recentemente a trabalhar com o xharbour. Estou em processo de conversão de um sistema clipper para xharbour e, por isso, a necessidade daquela rotina.
A versão do xharbour é a 1.0.0 simpex.
Além disso, estou usando o Xdev para edição/compilação dos sistemas.
Já tentei acrescentar as libs HZLIB e HBMLIB no projeto mas continua dando erro na compilação.
Grato.
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Re: Compilar com ziplib

Mensagem por clodoaldomonteiro »

Use a HBZIP.LIB, ela funciona muito bem no xHarbour 1.0.0.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Compilar com ziplib

Mensagem por sygecom »

Veja os exemplos do link abaixo:
viewtopic.php?f=43&t=6757
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
coucello
Usuário Nível 1
Usuário Nível 1
Mensagens: 13
Registrado em: 19 Jan 2010 18:47
Localização: Porto Velho

Re: Compilar com ziplib

Mensagem por coucello »

Caso resolvido. Acredito que era algum problema com a HBZLIB. Acrescentei a do XHARBOUR\LIB como citado pelo Clodoaldo e funcionou.
Obrigado.
Responder