Clipper On Line • Ver Tópico - HB_UNZIPFILE(), não consigo extrair nenhum arquivo

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor sambomb » 27 Out 2008 08:22

Olá, gostaria de saber se mais alguem ja teve esse problema, e como resolve-lo.

Já segui o código fonte apresentado no xbLite e não consegui extrair nenhum arquivo, a função sempre me retorna falso.

Um detalhe que eu achei interessante é que nem pelo executável do xbLite eu consigo extrair arquivos.

Result := HB_UNZIPFILE(::cPath+::cNome,,.F.,,pcDestPath,paFile[i])

Sendo que o retorno que recebo de cada varíavel é o seguinte :
::cPath+::cNome = C:\INTERESTE.ZIP
pcDestPath = C:\
paFile[i] = C:\Intel\Logs\IntelChipset.log

Sendo o caminho do Zip C:\INTERESTE.ZIP
O caminho para extração: C:\
O arquivo dentro do Zip denominado : IntelChipset.log
E o caminho(path) do arquivo dentro do ZIP \Intel\Logs\

OBS.: Adicionar ou retirar a unidade não alterou em nada o resultado
OBS. 2: Passar o parametro lWithPath como .T. também retorna falso e não extrai o arquivo

Abaixo segue a documentação que eu tenho desta função para fins de comparação caso ela esteja errada e também para quem não tenha acesso a função que está incluida na lib hzip.lib
HB_UNZIPFILE() //Unzip a compressed file

SYNTAX : HB_UNZIPFILE( <cFile>, <bBlock>, <lWithPath>, <cPassWord>, <cPath>, <cFile>|<aFile>,<pFileProgress> ) ---> lCompress

ARGUMENTS :
<cFile> Name of the zip file to extract
<bBlock> Code block to execute while extracting
<lWithPath> Toggle to create directory if needed
<cPassWord> Password to use to extract files
<cPath> Path to extract the files to - mandatory
<cFile> | <aFiles> A File or Array of files to extract - mandatory
<pFileProgress> Code block for File Progress
Imagem

Rca Sistemas - Itaocara - RJ
Avatar de usuário

sambomb
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 250
Data de registro: 24 Out 2008 16:02
Cidade/Estado: Itaocara - RJ - Brasil
Curtiu: 16 vezes
Mens.Curtidas: 10 vezes

Re: HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor sygecom » 27 Out 2008 17:27

Post um pequeno EXEMPLO para ver se consigo descompactar aqui !
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7006
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Re: HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor sambomb » 29 Out 2008 07:49

Atualizando.... Achei o erro.... http://www.fivewin.com.br/forum/topic.a ... C_ID=14090

Obrigado a todos que leram mas não puderam ajudar e a quem tentou....
Imagem

Rca Sistemas - Itaocara - RJ
Avatar de usuário

sambomb
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 250
Data de registro: 24 Out 2008 16:02
Cidade/Estado: Itaocara - RJ - Brasil
Curtiu: 16 vezes
Mens.Curtidas: 10 vezes

Re: HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor rochinha » 08 Nov 2008 09:56

Amiguinho,

De uma analisada neste meu codigo:
#include "FiveWin.ch"

FUNCTION NFWBackup()
   local oDLGARQ, oGet, lGo := .f., lGrava := .t., lDireta := .t.
   local lOverWrite:=.t., cPassword:="5volution"
   local lCtrl101,nCtrl102:=15,lCtrl103,lCtrl104,lCtrl105,nCtrl106:=1,;
         cCtrl107:="DIA(S)",nCtrl108:=1,cCtrl109:=SPACE(50)
   cBKPName   := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
   cZIPName   := VerifyINI( "BACKUP" , "Nome"      , cBKPName                      , cPath+"5vbackup.ini", .t. )
   cZIPEmail  := VerifyINI( "BACKUP" , "Email"     , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" )
   cZIPFiles  := VerifyINI( "BACKUP" , "Arquivos"  , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" )
   nZIPNivel  := VerifyINI( "BACKUP" , "Nivel"     , 8                             , cPath+"5vbackup.ini" )
   lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S"                           , cPath+"5vbackup.ini" )
   cPassword  := VerifyINI( "BACKUP" , "PassWord"  , Codifica("5volution")         , cPath+"5vbackup.ini" )
   cBKPAuto   := VerifyINI( "BACKUP" , "AUTOMATICO", "N"                           , cPath+"5vbackup.ini" )
   cBKPDest   := VerifyINI( "BACKUP" , "DESTINO"   , cPath                         , cPath+"5vbackup.ini" )
   cBKPOrig   := VerifyINI( "BACKUP" , "ORIGEM"    , cPath                         , cPath+"5vbackup.ini" )
                 VerifyINI( "BACKUP" , "LEMBRAR"   , "S"                           , cPath+"5vbackup.ini" )
                 VerifyINI( "BACKUP" , "PUBLICO"   , "N"                           , cPath+"5vbackup.ini" )
   DEFINE DIALOG oDLGARQ NAME "dlgBackup"
          //REDEFINE CHECKBOX oCtrl101 VAR lCtrl101 ID 101 OF oDLGARQ
          //REDEFINE GET      oCtrl102 VAR nCtrl102 ID 102 PICTURE "999" OF oDLGARQ WHEN lCtrl101 ;
          //  SPINNER ;
          //  ON UP   (++nCtrl102,oCtrl102:Refresh()) ;
          //  ON DOWN (--nCtrl102,oCtrl102:Refresh())
          REDEFINE GET      oCtrl102 VAR cBKPOrig ID 102 PICTURE "@!" OF oDLGARQ WHEN nCtrl108=1
          REDEFINE BUTTON ID 103 OF oDLGARQ ACTION ( cBKPOrig:=cGetDir("Pesquise no conjunto de pastas na caixa abaixo qual o diretorio contem os dados de que necessita","C:\"),oCtrl102:Refresh(),;
                                                     VerifyINI( "BACKUP", "DESTINO", cBKPOrig, cPath+"5vbackup.ini", .t. ),;
                                                     VerifyINI( "BACKUP", "ORIGEM" , cBKPOrig, cPath+"5vbackup.ini", .t. ) )
          //REDEFINE CHECKBOX oCtrl105 VAR lCtrl105 ID 105 OF oDLGARQ
          //REDEFINE GET      oCtrl106 VAR nCtrl106 ID 106 PICTURE "999" OF oDLGARQ ;
          //  SPINNER ;
          //  ON UP   (++nCtrl106,oCtrl106:Refresh()) ;
          //  ON DOWN (--nCtrl106,oCtrl106:Refresh())
          //REDEFINE COMBOBOX oCtrl107 VAR cCtrl107 ITEMS { "Mese(s)", "Semana(s)", "Dia(s)", "Ano(s)" } OF oDLGARQ ID 107
          REDEFINE BITMAP oBitMap ID 101 OF oDLGARQ RESOURCE "bmp006" //TRANSPAREN
          REDEFINE BITMAP oBitMap ID 104 OF oDLGARQ RESOURCE "bmp006" //TRANSPAREN
          REDEFINE BUTTON ID 105 OF oDLGARQ ACTION ZipBackup()
          REDEFINE BUTTON ID 106 OF oDLGARQ ACTION ZipRestore()
          REDEFINE BUTTON ID 107 OF oDLGARQ ACTION (lGo := .f., oDLGARQ:End())
   ACTIVATE DIALOG oDLGARQ CENTERED
   //VerifyINI( "BACKUP" , "Nome"      , cZIPName  , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "Email"     , cZIPEmail , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "Arquivos"  , cZIPFiles , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "Nivel"     , nZIPNivel , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "Reescreve" , lOverWrite, cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "PassWord"  , cPassword , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "AUTOMATICO", cBKPAuto  , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "DESTINO"   , cBKPDest  , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "ORIGEM"    , cBKPOrig  , cPath+"5vbackup.ini", .t. )
   return nil

FUNCTION ZIPBackup()
   local oMeter
   SET _3DLOOK ON
   MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
             ZipIn(oMeter) },;
             "Gerando arquivo compactado...", "Backup/Restore" )
   Return .f.

FUNCTION ZipIn(oMeter)
   local lOverWrite:=.t., cPassword:="5volution"
   cBKPName   := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
   cZIPName   := VerifyINI( "BACKUP" , "Nome"      , cBKPName                      , cPath+"5vbackup.ini", .t. )
   cZIPEmail  := VerifyINI( "BACKUP" , "Email"     , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" )
   cZIPFiles  := VerifyINI( "BACKUP" , "Arquivos"  , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" )
   nZIPNivel  := VerifyINI( "BACKUP" , "Nivel"     , 8                             , cPath+"5vbackup.ini" )
   lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S"                           , cPath+"5vbackup.ini" )
   cPassword  := VerifyINI( "BACKUP" , "PassWord"  , Codifica("5volution")         , cPath+"5vbackup.ini" )
   cBKPAuto   := VerifyINI( "BACKUP" , "AUTOMATICO", "N"                           , cPath+"5vbackup.ini" )
   cBKPDest   := VerifyINI( "BACKUP" , "DESTINO"   , cPath                         , cPath+"5vbackup.ini" )
   cBKPOrig   := VerifyINI( "BACKUP" , "ORIGEM"    , cPath                         , cPath+"5vbackup.ini" )
                 VerifyINI( "BACKUP" , "LEMBRAR"   , "S"                           , cPath+"5vbackup.ini" )
                 VerifyINI( "BACKUP" , "PUBLICO"   , "N"                           , cPath+"5vbackup.ini" )
   aZipFiles  := ProcessaArray( StringToArray( cZIPFiles, ";" ) )
   oMeter:nTotal:=Len(aZIPFiles)
   cBKPOrig   := curdrive()+":\"+curdir()
   if !file(cBKPOrig+"\"+cZIPName)
      Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite )
   else
      //fErase(cBKPOrig+"\"+cZIPName)
      //if MsgYesNo( "Arquivo ("+cBKPName+") ja existe, Deseja re-escrever", "Atencao" )
      //   Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite )
      //endif
   endif
   return .t.

FUNCTION ZIPRestore()
   local oMeter
   SET _3DLOOK ON
   MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
             ZipOut(oMeter) },;
             "Descompactando arquivo...", "Backup/Restore" )
   Return Nil     

FUNCTION ZipOut(oMeter)
   local lOverWrite:=.t., cPassword:="5volution"
   cBKPName   := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
   cZIPName   := VerifyINI( "BACKUP" , "Nome"      , cBKPName                      , cPath+"5vbackup.ini", .t. )
   lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S"                           , cPath+"5vbackup.ini" )
   cPassword  := DeCodifica(VerifyINI( "BACKUP" , "PassWord"  , Codifica("5volution")         , cPath+"5vbackup.ini" ))
   cBKPDest   := VerifyINI( "BACKUP" , "DESTINO"   , cPath                         , cPath+"5vbackup.ini" )
   oMeter:nTotal:=HB_GetFilesInZip( cZIPName )
   HB_UNZIPFILE(cBKPDest+"\"+cZIPName,,lOverWrite,,cBKPDest)
   return .t.

FUNCTION ProcessaArray( aQArray )
   local aTArray := {}
   for i = 1 to len( aQArray )
       DBF_NOMES := array( ADIR( aQArray[i] ) )
       ADIR( aQArray[i], DBF_NOMES )
       for ii = 1 to len( DBF_NOMES )
           AADD( aTArray, DBF_NOMES[ii] )
       next
   next
   return aTArray

FUNCTION CheckBKP()
   cBKPName   := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
   cBKPAuto   := VerifyINI( "BACKUP" , "AUTOMATICO", "N"                           , cPath+"5vbackup.ini" )
   cZIPName   := VerifyINI( "BACKUP" , "Nome"      , cBKPName                      , cPath+"5vbackup.ini", .t. )
   cBKPOrig   := VerifyINI( "BACKUP" , "ORIGEM"    , cPath                         , cPath+"5vbackup.ini" )
   cBKPOrig   := curdrive()+":\"+curdir()
   if cBKPAuto = "S"
      if !file(cBKPOrig+"\"+cZIPName)
         if Val(TTOS(time())) > 173000
            if MsgYesNo( "Backup de seguranca de hoje nao existe. "+CRLF+"Deseja efetuar o backup?", "Atencao" )
               ZIPBackup()
            endif
         endif
      endif
   endif
   return .t.

FUNCTION VerifyINI( _section_, _entry_, _var_, _inifile_, _grava_ )
   oIni := TIni():New( _inifile_ )
   if _grava_ = .t.
      oIni:Set( _section_, _entry_, _var_ )
   endif
   return oIni:Get( _section_, _entry_, _var_, _var_ )


Resource:
dlgBackup DIALOG 10, 124, 269, 125
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Gerenciar arquivos"
FONT 8, "MS Sans Serif"
{
EDITTEXT 102, 14, 51, 189, 12
PUSHBUTTON "Procurar...", 103, 207, 50, 50, 14
PUSHBUTTON "Fazer &Backup Agora", 105, 8, 106, 86, 14
PUSHBUTTON "&Restaurar Agora...", 106, 96, 106, 86, 14
PUSHBUTTON "Fechar", 107, 212, 106, 50, 14
CONTROL "", 101, "static", SS_BLACKRECT | WS_CHILD | WS_VISIBLE, 8, 5, 20, 20
CONTROL "", 104, "static", SS_BLACKRECT | WS_CHILD | WS_VISIBLE, 8, 76, 20, 20
LTEXT "Local atual:", -1, 15, 40, 106, 8
GROUPBOX "Local para backup e restauração", -1, 8, 29, 256, 42, BS_GROUPBOX
LTEXT "Faça o backup periódico de seus arquivos de dados em um local seguro. Dê preferencia a locais fora de seu disco rigido, como outro disco rígido, cd ou disco virtual na internet.", -1, 35, 74, 228, 27
LTEXT "Insira o local para backup ou restauração dos arquivos.", -1, 34, 3, 228, 27
}


Nem retirei os trechos desabilitados e se faltar uma fução me da um toque.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor Kapiaba » 21 Mar 2017 15:11

Rochinha, podeis disponibilizar estas funções e o arquivo.ini?

Error: Unresolved external '_HB_FUN_CODIFICA' referenced from C:\FWH1701\SAMPLES
\BACKUP.OBJ
Error: Unresolved external '_HB_FUN_STRINGTOARRAY' referenced from C:\FWH1701\SA
MPLES\BACKUP.OBJ
Error: Unresolved external '_HB_FUN_DECODIFICA' referenced from C:\FWH1701\SAMPL
ES\BACKUP.OBJ
Error: Unable to perform link
* Linking errors *
C:\FWH1701\samples>


Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor rochinha » 22 Mar 2017 00:39

Amiguinhos,

Seguem as funções faltantes:
function codifica( _pass_ )
  _senha_ := ''
  for i = 1 to len(alltrim(_pass_))
    _senha_ := _senha_ + chr(asc(substr(_pass_,i,1))+9)
  next
  return _senha_

function decodifica( _pass_ )
  _senha_ := ''
  for i = 1 to len(alltrim(_pass_))
    _senha_ := _senha_ + chr(asc(substr(_pass_,i,1))-9)
  next
  return _senha_

function StringToArray( cString, cSeparator )
LOCAL nPos
LOCAL aString := {}
DEFAULT cSeparator := ";"
cString := ALLTRIM( cString ) + cSeparator
DO WHILE .T.
   nPos := AT( cSeparator, cString )
   IF nPos = 0
    EXIT
   ENDIF
   AADD( aString, SUBSTR( cString, 1, nPos-1 ) )
   cString := SUBSTR( cString, nPos+1 )
ENDDO
RETURN ( aString )

function ArrayToString( aArray, cSeparator )
LOCAL nPos
DEFAULT cSeparator := ";"
cString := ""
FOR nPos = 1 TO LEN(aArray)
   cString := cString + aArray[nPos] + cSeparator
NEXT
RETURN ( cString )
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor Kapiaba » 22 Mar 2017 10:48

Very good Rochinha, haciendo testes. Many thanks.

backup.png
Backup


Abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor Kapiaba » 22 Mar 2017 11:27

Rochinha, somente o "Restaurar Agora" não funcionou, sabeis o motivo?

/*
// Autor: By Rochinha - Forum PcToledo.
// http://www.pctoledo.com.br/forum/viewtopic.php?f=2&t=8731
// Modificado por: Joao Santos em: 22/03/2017
// Email: kapiabafwh@gmail.com
*/

#include "FiveWin.ch"

#Define CLR_MENTA          RGB(221,255,238)

MEMVAR cPath

FUNCTION NFWBackup()

   LOCAL oDLGARQ, oGet, lGo := .f., lGrava := .t., lDireta := .t.
   LOCAL lOverWrite := .t., cPassword := "5volution"
   LOCAL lCtrl101, nCtrl102:=15, lCtrl103,lCtrl104, lCtrl105, nCtrl106 := 1, ;
         cCtrl107 := "DIA(S)", nCtrl108 := 1, cCtrl109 := SPACE(50)

   LOCAL cBKPName, cZIPName, cZIPEmail, cZIPFiles, nZIPNivel, cBKPAuto, ;
         cBKPDest, cBKPOrig, oCtrl102, oBitMap
   // variavel nao existia
   PRIVATE cPath := CURDRIVE() + ":\" + CURDIR()

   SetBalloon( .T. ) // Balloon shape required for tooltips

   SkinButtons()     // Botoes Coloridos nas novas versoes

   SetGetColorFocus( CLR_MENTA )  // COR NO GET

   tGet():lDisColors  := .F.      // WHEN( .F. ) COM COR.
   tGet():nClrTextDis := CLR_HBLUE
   tGet():nClrPaneDis := CLR_HRED

   //---------------------Rochinha------------------------------------------//

   cBKPName   := "BK"+strtran(dtoc(date()),"/","")+".ZIP"

   cZIPName   := VerifyINI( "BACKUP" , "Nome"   , cBKPName           , cPath+"5vbackup.ini", .t. )

   cZIPEmail  := VerifyINI( "BACKUP" , "Email"  , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" )

   // Pega os arquivos destes formatos.
   cZIPFiles  := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" )

   nZIPNivel  := VerifyINI( "BACKUP" , "Nivel"  , 8              , cPath+"5vbackup.ini" )

   lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S"             , cPath+"5vbackup.ini" )

   cPassword  := VerifyINI( "BACKUP" , "PassWord" , Codifica("5volution")    , cPath+"5vbackup.ini" )

   cBKPAuto   := VerifyINI( "BACKUP" , "AUTOMATICO", "N"             , cPath+"5vbackup.ini" )

   cBKPDest   := VerifyINI( "BACKUP" , "DESTINO" , cPath            , cPath+"5vbackup.ini" )

   cBKPOrig   := VerifyINI( "BACKUP" , "ORIGEM"  , cPath            , cPath+"5vbackup.ini" )

                 VerifyINI( "BACKUP" , "LEMBRAR" , "S"             , cPath+"5vbackup.ini" )

                 VerifyINI( "BACKUP" , "PUBLICO" , "N"             , cPath+"5vbackup.ini" )

   DEFINE DIALOG oDLGARQ NAME "dlgBackup" ;
          COLORS CLR_BLACK, CLR_WHITE TRANSPARENT

   oDLGARQ:lHelpIcon := .F.

   // REDEFINE CHECKBOX oCtrl101 VAR lCtrl101 ID 101 OF oDLGARQ
   // REDEFINE GET   oCtrl102 VAR nCtrl102 ID 102 PICTURE "999" OF oDLGARQ WHEN lCtrl101 ;
   // SPINNER ;
   // ON UP (++nCtrl102,oCtrl102:Refresh()) ;
   // ON DOWN (--nCtrl102,oCtrl102:Refresh())

   REDEFINE GET oCtrl102 VAR cBKPOrig ID 102 PICTURE "@!" OF oDLGARQ ;
            WHEN nCtrl108=1

   REDEFINE BUTTON ID 103 OF oDLGARQ ;
      ACTION( cBKPOrig := cGetDir("Pesquise no conjunto de pastas na caixa abaixo qual o diretorio contem os dados de que necessita","C:\"),oCtrl102:Refresh(),;
              VerifyINI( "BACKUP", "DESTINO", cBKPOrig, cPath+"5vbackup.ini", .t. ),;
              VerifyINI( "BACKUP", "ORIGEM" , cBKPOrig, cPath+"5vbackup.ini", .t. ) )

   // REDEFINE CHECKBOX oCtrl105 VAR lCtrl105 ID 105 OF oDLGARQ
   // REDEFINE GET   oCtrl106 VAR nCtrl106 ID 106 PICTURE "999" OF oDLGARQ ;
   // SPINNER ;
   // ON UP (++nCtrl106,oCtrl106:Refresh()) ;
   // ON DOWN (--nCtrl106,oCtrl106:Refresh())
   // REDEFINE COMBOBOX oCtrl107 VAR cCtrl107 ITEMS { "Mese(s)", "Semana(s)", "Dia(s)", "Ano(s)" } OF oDLGARQ ID 107

   REDEFINE BITMAP oBitMap ID 101 OF oDLGARQ RESOURCE "bmp006" //TRANSPARENT

   REDEFINE BITMAP oBitMap ID 104 OF oDLGARQ RESOURCE "bmp006" //TRANSPARENT

   REDEFINE BUTTON ID 105 OF oDLGARQ ;
            ACTION ZipBackup()

   REDEFINE BUTTON ID 106 OF oDLGARQ ;
            ACTION ZipRestore()

   REDEFINE BUTTON ID 107 OF oDLGARQ ;
            ACTION (lGo := .f., oDLGARQ:End()) CANCEL

   ACTIVATE DIALOG oDLGARQ CENTERED

   //VerifyINI( "BACKUP" , "Nome"   , cZIPName , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "Email"  , cZIPEmail , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "Arquivos" , cZIPFiles , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "Nivel"  , nZIPNivel , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "Reescreve" , lOverWrite, cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "PassWord" , cPassword , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "AUTOMATICO", cBKPAuto , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "DESTINO" , cBKPDest , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "ORIGEM"  , cBKPOrig , cPath+"5vbackup.ini", .t. )

RETURN NIL

FUNCTION ZIPBackup()

   LOCAL oMeter

   SET _3DLOOK ON

   MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
             ZipIn(oMeter) },;
             "Gerando arquivo compactado...", "Backup/Restore" )

Return .f.

FUNCTION ZipIn(oMeter)

   LOCAL lOverWrite := .t., cPassword := "5volution"
   LOCAL cBKPName, cZIPName,  cZIPEmail, cZIPFiles, nZIPNivel, cBKPAuto, ;
         cBKPDest, cBKPOrig, aZipFiles

   cBKPName   := "BK"+strtran(dtoc(date()),"/","")+".ZIP"

   cZIPName   := VerifyINI( "BACKUP" , "Nome"   , cBKPName           , cPath+"5vbackup.ini", .t. )

   cZIPEmail  := VerifyINI( "BACKUP" , "Email"  , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" )

   cZIPFiles  := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" )

   nZIPNivel  := VerifyINI( "BACKUP" , "Nivel"  , 8              , cPath+"5vbackup.ini" )

   lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S"             , cPath+"5vbackup.ini" )

   cPassword  := VerifyINI( "BACKUP" , "PassWord" , Codifica("5volution")    , cPath+"5vbackup.ini" )

   cBKPAuto   := VerifyINI( "BACKUP" , "AUTOMATICO", "N"             , cPath+"5vbackup.ini" )

   cBKPDest   := VerifyINI( "BACKUP" , "DESTINO" , cPath            , cPath+"5vbackup.ini" )

   cBKPOrig   := VerifyINI( "BACKUP" , "ORIGEM"  , cPath            , cPath+"5vbackup.ini" )

                 VerifyINI( "BACKUP" , "LEMBRAR" , "S"             , cPath+"5vbackup.ini" )

                 VerifyINI( "BACKUP" , "PUBLICO" , "N"             , cPath+"5vbackup.ini" )

   aZipFiles := ProcessaArray( StringToArray( cZIPFiles, ";" ) )

   oMeter:nTotal:=Len(aZIPFiles)

   cBKPOrig := curdrive()+":\"+curdir()

   if !file(cBKPOrig+"\"+cZIPName)

     Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite )

   else

     //fErase(cBKPOrig+"\"+cZIPName)
     //if MsgYesNo( "Arquivo ("+cBKPName+") ja existe, Deseja re-escrever", "Atencao" )
     // Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite )
     //endif

   endif

return .t.

FUNCTION ZIPRestore()

   LOCAL oMeter

   SET _3DLOOK ON

   MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
             ZipOut(oMeter) },;
            "Descompactando arquivo...", "Backup/Restore" )

Return Nil   

FUNCTION ZipOut(oMeter)

   LOCAL lOverWrite:=.t., cPassword:="5volution"
   LOCAL cBKPName, cZIPName,  cZIPEmail, cZIPFiles, nZIPNivel, cBKPAuto, ;
         cBKPDest, cBKPOrig, aZipFiles

   cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP"

   cZIPName := VerifyINI( "BACKUP" , "Nome"   , cBKPName           , cPath+"5vbackup.ini", .t. )

   lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S"             , cPath+"5vbackup.ini" )

   cPassword := DeCodifica(VerifyINI( "BACKUP" , "PassWord" , Codifica("5volution")    , cPath+"5vbackup.ini" ))

   cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath            , cPath+"5vbackup.ini" )

   oMeter:nTotal := HB_GetFilesInZip( cZIPName )

   // Restore nao funcionou a contento...
   HB_UNZIPFILE(cBKPDest+"\"+cZIPName,,lOverWrite,,cBKPDest)

return .t.

FUNCTION ProcessaArray( aQArray )

   LOCAL aTArray := {}
   LOCAL I, DBF_NOMES, II

   for i = 1 to len( aQArray )

      DBF_NOMES := ARRAY( ADIR( aQArray[i] ) )

      ADIR( aQArray[i], DBF_NOMES )

      for ii = 1 to len( DBF_NOMES )
         AADD( aTArray, DBF_NOMES[ii] )
      next

   next

return aTArray

FUNCTION CheckBKP()

   LOCAL cBKPName, cZIPName,  cZIPEmail, cZIPFiles, nZIPNivel, cBKPAuto, ;
         cBKPDest, cBKPOrig, aZipFiles

   cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP"

   cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N"             , cPath+"5vbackup.ini" )

   cZIPName := VerifyINI( "BACKUP" , "Nome"   , cBKPName           , cPath+"5vbackup.ini", .t. )

   cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM"  , cPath            , cPath+"5vbackup.ini" )

   cBKPOrig := curdrive()+":\"+curdir()

   if cBKPAuto = "S"

      if !file(cBKPOrig+"\"+cZIPName)

         if Val(TTOS(time())) > 173000

            if MsgYesNo( "Backup de seguranca de hoje nao existe. "+CRLF+"Deseja efetuar o backup?", "Atencao" )

               ZIPBackup()

            endif

         endif

      endif

   endif

return .t.

FUNCTION VerifyINI( _section_, _entry_, _var_, _inifile_, _grava_ )

   LOCAL oIni

   oIni := TIni():New( _inifile_ )

   if _grava_ = .t.

      oIni:Set( _section_, _entry_, _var_ )

   endif

return oIni:Get( _section_, _entry_, _var_, _var_ )

function codifica( _pass_ )

   LOCAL _senha_, I

   _senha_ := ''

   for i = 1 to len(alltrim(_pass_))

      _senha_ := _senha_ + chr(asc(substr(_pass_,i,1))+9)

   next

return _senha_

function decodifica( _pass_ )

   LOCAL _senha_, I

    _senha_ := ''

   for i = 1 to len(alltrim(_pass_))

      _senha_ := _senha_ + chr(asc(substr(_pass_,i,1))-9)

   next

return _senha_

function StringToArray( cString, cSeparator )

   LOCAL nPos
   LOCAL aString := {}

   DEFAULT cSeparator := ";"

   cString := ALLTRIM( cString ) + cSeparator

   DO WHILE .T.

      nPos := AT( cSeparator, cString )

      IF nPos = 0

         EXIT

      ENDIF

      AADD( aString, SUBSTR( cString, 1, nPos-1 ) )

      cString := SUBSTR( cString, nPos+1 )

      SYSREFRESH()

   ENDDO

RETURN ( aString )

function ArrayToString( aArray, cSeparator )

   LOCAL nPos, cString

   DEFAULT cSeparator := ";"

   cString := ""

   FOR nPos = 1 TO LEN(aArray)

      cString := cString + aArray[nPos] + cSeparator

   NEXT

RETURN ( cString )

// FIN


Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor Kapiaba » 22 Mar 2017 12:09

Rochinha, sua rotina ficaria show() de bola assim, com a xBrowse. Que achas? Consegues no estilo da xBlite.prg?

backup.png


Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor Kapiaba » 22 Mar 2017 13:25

Desafiando o Rochinha a fazer igual, usando xBrowse. Topas Rochinha?

backup.png


Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor rochinha » 22 Mar 2017 14:30

Amiguinhos,

kapiaba, ai já é demais pro meu plantel. As suas telas tá muito bonitinha, parece programa do Baixaki.

O módulo em questão era assim reduzido a diálogos porque era chamado de dentro do sistema e para não parecer outro programa ficou bem suscinto.

Preciso rever, porque as funções de ZIPagem do meu Harbour não estão mais funcionando, tive de usar ZIP.EXE para sanar problemas e usei OOG para os clientes pararem de pedir suporte(traduzindo: encher o saco)
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor Kapiaba » 22 Mar 2017 15:14

Que é isso Rochinha, boto fé no seu tako.

Mas blz, sua rotina funciona perfeita para ZIPAR os arquivos, mas não descobri o motivo de não descompactar. Se você descobrir, poste a resposta por favor.

Depois, vou tentar passar a xBlite.prg par tcBrowse ou xBrowse. Se conseguir posto aqui depois. Forte abraço.

Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor rochinha » 22 Mar 2017 22:37

Amiguinhos,

Uma pequena modificação aqui:
FUNCTION NFWBackup()
   local oDLGARQ, oGet, lGo := .f., lGrava := .t., lDireta := .t.
   local lOverWrite:=.t., cPassword:="5volution"
   local lCtrl101,nCtrl102:=15,lCtrl103,lCtrl104,lCtrl105,nCtrl106:=1,;
         cCtrl107:="DIA(S)",nCtrl108:=1,cCtrl109:=SPACE(50)
      
   public cPath      := cFilePath( GetModuleFileName( GetInstance() ) )

   cBKPName   := "BK"+strtran(dtoc(date()),"/","")+".ZIP"


Outra ali:
FUNCTION ZipOut(oMeter)
   local lOverWrite:=.t., cPassword:="5volution"
   cBKPName  := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
   cZIPName   := VerifyINI( "BACKUP" , "Nome"      , cBKPName                      , cPath+"5vbackup.ini", .t. )
   lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S"                           , cPath+"5vbackup.ini" )
   cPassword  := DeCodifica(VerifyINI( "BACKUP" , "PassWord"  , Codifica("5volution")         , cPath+"5vbackup.ini" ))
   cBKPDest   := VerifyINI( "BACKUP" , "DESTINO"   , cPath                         , cPath+"5vbackup.ini" )
   oMeter:nTotal:=len(HB_GetFilesInZip( cZIPName ))
   HB_UNZIPFILE(cBKPDest+"\"+cZIPName,,,,cBKPDest,,{|cFile,nPos|(oMeter:Set(nPos),SysRefresh())})
   return .t.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor Kapiaba » 23 Mar 2017 09:43

Rochinha, o "Restaurar agora..." continua sem funcionar... Mistérios...

/*
// Autor: By Rochinha - Forum PcToledo.
// http://www.pctoledo.com.br/forum/viewtopic.php?f=2&t=8731
// Modificado por: Joao Santos em: 22/03/2017
// Email: kapiabafwh@gmail.com
*/

#include "FiveWin.ch"

#Define CLR_MENTA          RGB(221,255,238)

MEMVAR cPath

FUNCTION NFWBackup()

   local oDLGARQ, oGet, lGo := .f., lGrava := .t., lDireta := .t.
   local lOverWrite:=.t., cPassword:="5volution"
   local lCtrl101,nCtrl102:=15,lCtrl103,lCtrl104,lCtrl105,nCtrl106:=1,;
         cCtrl107:="DIA(S)",nCtrl108:=1,cCtrl109:=SPACE(50)

   LOCAL cBKPName, cZIPName, cZIPEmail, cZIPFiles, nZIPNivel, cBKPAuto, ;
         cBKPDest, cBKPOrig, oCtrl102, oBitMap

   cPath   := cFilePath( GetModuleFileName( GetInstance() ) )

   SetBalloon( .T. ) // Balloon shape required for tooltips

   SkinButtons()     // Botoes Coloridos nas novas versoes

   SetGetColorFocus( CLR_MENTA )  // COR NO GET

   tGet():lDisColors  := .F.      // WHEN( .F. ) COM COR.
   tGet():nClrTextDis := CLR_HBLUE
   tGet():nClrPaneDis := CLR_HRED

   //---------------------Rochinha------------------------------------------//

   cBKPName   := "BK"+strtran(dtoc(date()),"/","")+".ZIP"

   cZIPName   := VerifyINI( "BACKUP" , "Nome"   , cBKPName           , cPath+"5vbackup.ini", .t. )

   cZIPEmail  := VerifyINI( "BACKUP" , "Email"  , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" )

   // Pega os arquivos destes formatos.
   cZIPFiles  := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" )

   nZIPNivel  := VerifyINI( "BACKUP" , "Nivel"  , 8              , cPath+"5vbackup.ini" )

   lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S"             , cPath+"5vbackup.ini" )

   cPassword  := VerifyINI( "BACKUP" , "PassWord" , Codifica("5volution")    , cPath+"5vbackup.ini" )

   cBKPAuto   := VerifyINI( "BACKUP" , "AUTOMATICO", "N"             , cPath+"5vbackup.ini" )

   cBKPDest   := VerifyINI( "BACKUP" , "DESTINO" , cPath            , cPath+"5vbackup.ini" )

   cBKPOrig   := VerifyINI( "BACKUP" , "ORIGEM"  , cPath            , cPath+"5vbackup.ini" )

                 VerifyINI( "BACKUP" , "LEMBRAR" , "S"             , cPath+"5vbackup.ini" )

                 VerifyINI( "BACKUP" , "PUBLICO" , "N"             , cPath+"5vbackup.ini" )

   DEFINE DIALOG oDLGARQ NAME "dlgBackup" ;
          COLORS CLR_BLACK, CLR_WHITE TRANSPARENT

   oDLGARQ:lHelpIcon := .F.

   // REDEFINE CHECKBOX oCtrl101 VAR lCtrl101 ID 101 OF oDLGARQ
   // REDEFINE GET   oCtrl102 VAR nCtrl102 ID 102 PICTURE "999" OF oDLGARQ WHEN lCtrl101 ;
   // SPINNER ;
   // ON UP (++nCtrl102,oCtrl102:Refresh()) ;
   // ON DOWN (--nCtrl102,oCtrl102:Refresh())

   REDEFINE GET oCtrl102 VAR cBKPOrig ID 102 PICTURE "@!" OF oDLGARQ ;
            WHEN nCtrl108=1

   REDEFINE BUTTON ID 103 OF oDLGARQ ;
      ACTION( cBKPOrig := cGetDir("Pesquise no conjunto de pastas na caixa abaixo qual o diretorio contem os dados de que necessita","C:\"),oCtrl102:Refresh(),;
              VerifyINI( "BACKUP", "DESTINO", cBKPOrig, cPath+"5vbackup.ini", .t. ),;
              VerifyINI( "BACKUP", "ORIGEM" , cBKPOrig, cPath+"5vbackup.ini", .t. ) )

   // REDEFINE CHECKBOX oCtrl105 VAR lCtrl105 ID 105 OF oDLGARQ
   // REDEFINE GET   oCtrl106 VAR nCtrl106 ID 106 PICTURE "999" OF oDLGARQ ;
   // SPINNER ;
   // ON UP (++nCtrl106,oCtrl106:Refresh()) ;
   // ON DOWN (--nCtrl106,oCtrl106:Refresh())
   // REDEFINE COMBOBOX oCtrl107 VAR cCtrl107 ITEMS { "Mese(s)", "Semana(s)", "Dia(s)", "Ano(s)" } OF oDLGARQ ID 107

   REDEFINE BITMAP oBitMap ID 101 OF oDLGARQ RESOURCE "bmp006" //TRANSPARENT

   REDEFINE BITMAP oBitMap ID 104 OF oDLGARQ RESOURCE "bmp006" //TRANSPARENT

   REDEFINE BUTTON ID 105 OF oDLGARQ ;
            ACTION ZipBackup()

   REDEFINE BUTTON ID 106 OF oDLGARQ ;
            ACTION ZipRestore()

   REDEFINE BUTTON ID 107 OF oDLGARQ ;
            ACTION (lGo := .f., oDLGARQ:End()) CANCEL

   ACTIVATE DIALOG oDLGARQ CENTERED

   //VerifyINI( "BACKUP" , "Nome"   , cZIPName , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "Email"  , cZIPEmail , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "Arquivos" , cZIPFiles , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "Nivel"  , nZIPNivel , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "Reescreve" , lOverWrite, cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "PassWord" , cPassword , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "AUTOMATICO", cBKPAuto , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "DESTINO" , cBKPDest , cPath+"5vbackup.ini", .t. )
   //VerifyINI( "BACKUP" , "ORIGEM"  , cBKPOrig , cPath+"5vbackup.ini", .t. )

RETURN NIL

FUNCTION ZIPBackup()

   LOCAL oMeter

   SET _3DLOOK ON

   MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
             ZipIn(oMeter) },;
             "Gerando arquivo compactado...", "Backup/Restore" )

Return .f.

FUNCTION ZipIn(oMeter)

   LOCAL lOverWrite := .t., cPassword := "5volution"
   LOCAL cBKPName, cZIPName,  cZIPEmail, cZIPFiles, nZIPNivel, cBKPAuto, ;
         cBKPDest, cBKPOrig, aZipFiles

   cBKPName   := "BK"+strtran(dtoc(date()),"/","")+".ZIP"

   cZIPName   := VerifyINI( "BACKUP" , "Nome"   , cBKPName           , cPath+"5vbackup.ini", .t. )

   cZIPEmail  := VerifyINI( "BACKUP" , "Email"  , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" )

   cZIPFiles  := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" )

   nZIPNivel  := VerifyINI( "BACKUP" , "Nivel"  , 8              , cPath+"5vbackup.ini" )

   lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S"             , cPath+"5vbackup.ini" )

   cPassword  := VerifyINI( "BACKUP" , "PassWord" , Codifica("5volution")    , cPath+"5vbackup.ini" )

   cBKPAuto   := VerifyINI( "BACKUP" , "AUTOMATICO", "N"             , cPath+"5vbackup.ini" )

   cBKPDest   := VerifyINI( "BACKUP" , "DESTINO" , cPath            , cPath+"5vbackup.ini" )

   cBKPOrig   := VerifyINI( "BACKUP" , "ORIGEM"  , cPath            , cPath+"5vbackup.ini" )

                 VerifyINI( "BACKUP" , "LEMBRAR" , "S"             , cPath+"5vbackup.ini" )

                 VerifyINI( "BACKUP" , "PUBLICO" , "N"             , cPath+"5vbackup.ini" )

   aZipFiles := ProcessaArray( StringToArray( cZIPFiles, ";" ) )

   oMeter:nTotal:=Len(aZIPFiles)

   cBKPOrig := curdrive()+":\"+curdir()

   if !file(cBKPOrig+"\"+cZIPName)

     Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite )

   else

     //fErase(cBKPOrig+"\"+cZIPName)
     //if MsgYesNo( "Arquivo ("+cBKPName+") ja existe, Deseja re-escrever", "Atencao" )
     // Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite )
     //endif

   endif

return .t.

FUNCTION ZIPRestore()

   LOCAL oMeter

   SET _3DLOOK ON

   MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
             ZipOut(oMeter) },;
            "Descompactando arquivo...", "Backup/Restore" )

Return Nil   

FUNCTION ZipOut(oMeter)

   LOCAL lOverWrite:=.t., cPassword:="5volution"
   LOCAL cBKPName, cZIPName,  cZIPEmail, cZIPFiles, nZIPNivel, cBKPAuto, ;
         cBKPDest, cBKPOrig, aZipFiles

   cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP"

   cZIPName := VerifyINI( "BACKUP" , "Nome"   , cBKPName           , cPath+"5vbackup.ini", .t. )

   lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S"             , cPath+"5vbackup.ini" )

   cPassword := DeCodifica(VerifyINI( "BACKUP" , "PassWord" , Codifica("5volution")    , cPath+"5vbackup.ini" ))

   cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath            , cPath+"5vbackup.ini" )

   oMeter:nTotal:=len(HB_GetFilesInZip( cZIPName ))

   HB_UNZIPFILE(cBKPDest+"\"+cZIPName,,,,cBKPDest,,{|cFile,nPos|(oMeter:Set(nPos),SysRefresh())})

return .t.

FUNCTION ProcessaArray( aQArray )

   LOCAL aTArray := {}
   LOCAL I, DBF_NOMES, II

   for i = 1 to len( aQArray )

      DBF_NOMES := ARRAY( ADIR( aQArray[i] ) )

      ADIR( aQArray[i], DBF_NOMES )

      for ii = 1 to len( DBF_NOMES )
         AADD( aTArray, DBF_NOMES[ii] )
      next

   next

return aTArray

FUNCTION CheckBKP()

   LOCAL cBKPName, cZIPName,  cZIPEmail, cZIPFiles, nZIPNivel, cBKPAuto, ;
         cBKPDest, cBKPOrig, aZipFiles

   cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP"

   cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N"             , cPath+"5vbackup.ini" )

   cZIPName := VerifyINI( "BACKUP" , "Nome"   , cBKPName           , cPath+"5vbackup.ini", .t. )

   cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM"  , cPath            , cPath+"5vbackup.ini" )

   cBKPOrig := curdrive()+":\"+curdir()

   if cBKPAuto = "S"

      if !file(cBKPOrig+"\"+cZIPName)

         if Val(TTOS(time())) > 173000

            if MsgYesNo( "Backup de seguranca de hoje nao existe. "+CRLF+"Deseja efetuar o backup?", "Atencao" )

               ZIPBackup()

            endif

         endif

      endif

   endif

return .t.

FUNCTION VerifyINI( _section_, _entry_, _var_, _inifile_, _grava_ )

   LOCAL oIni

   oIni := TIni():New( _inifile_ )

   if _grava_ = .t.

      oIni:Set( _section_, _entry_, _var_ )

   endif

return oIni:Get( _section_, _entry_, _var_, _var_ )

function codifica( _pass_ )

   LOCAL _senha_, I

   _senha_ := ''

   for i = 1 to len(alltrim(_pass_))

      _senha_ := _senha_ + chr(asc(substr(_pass_,i,1))+9)

   next

return _senha_

function decodifica( _pass_ )

   LOCAL _senha_, I

    _senha_ := ''

   for i = 1 to len(alltrim(_pass_))

      _senha_ := _senha_ + chr(asc(substr(_pass_,i,1))-9)

   next

return _senha_

function StringToArray( cString, cSeparator )

   LOCAL nPos
   LOCAL aString := {}

   DEFAULT cSeparator := ";"

   cString := ALLTRIM( cString ) + cSeparator

   DO WHILE .T.

      nPos := AT( cSeparator, cString )

      IF nPos = 0

         EXIT

      ENDIF

      AADD( aString, SUBSTR( cString, 1, nPos-1 ) )

      cString := SUBSTR( cString, nPos+1 )

      SYSREFRESH()

   ENDDO

RETURN ( aString )

function ArrayToString( aArray, cSeparator )

   LOCAL nPos, cString

   DEFAULT cSeparator := ";"

   cString := ""

   FOR nPos = 1 TO LEN(aArray)

      cString := cString + aArray[nPos] + cSeparator

   NEXT

RETURN ( cString )

// FIN


Abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

HB_UNZIPFILE(), não consigo extrair nenhum arquivo

Mensagempor rochinha » 23 Mar 2017 12:10

Amiguinhos,

kapiaba crie uma pasta de testes e coloque o BK?????.ZIP criado, o arquivo .INI e o aplicativo compilado.

Execute e veja se descompacta.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Próximo



Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro