Quem desenvolve sistemas, já se deparou ou pode se deparar com a necessidade de fazer backup´s através do sistema. Há varias formas de ser feitas e uma das mais indicadas e através da compactação de arquivos. Neste tutorial, vou mostrar como compactar e descompactar arquivo através do Sql Window utilizado as dll´s AZIP32.DLL e AUNZIP32.DLL. Primeiro temos que declarara na sessão External Função. Library name: AZIP32.DLL Library name: AUNZIP32.DLL. Em seguida temos que declara as f unções de comando da dll.
Funções de Compactação Função: addZIP_Initialise Descrição: Inicializa o processo de compactação. Função: addZIP_SetCompressionLevel Retorno Number: INT Parametros Number: INT Descrição: Escolhe o nível de compressão dos arquivos. Função: addZIP_Include Retorno Number: INT Parametros String: LPSTR Descrição: Inclui o arquivo a ser compactado. O parâmetro e o endereço do arquivo. Função: addZIP_ArchiveName Retorno Number: INT Parametros String: LPSTR Descrição: Endereço do arquivo de destino. O parâmetro e o endereço do arquivo. Função: addZIP Number: INT Retorno Descrição: Compacto o arquivo. Função: addZIP_SaveStructure Number: INT Retorno Parametros Number: INT Descrição: Salva a estrutura de pasta. Função: addZIP_Delete Number: INT Retorno Parametros Number: INT Descrição: Exclui arquivo após compactação.
Função: addZIP_Encrypt Number: LONG Retorno Parametros String: LPSTR Descrição: Criptografa o arquivo e o protege com senha. Função: addZIP_SetParentWindowHandle Number: INT Retorno Parametros Window Handle: HWND Função: addZIP_SetWindowHandle Retorno Number: INT Parametros Window Handle: HWND
Funções de Descompactação Função: addUNZIP Number: INT Retorno Descrição: Descompacta o arquivo. Função: addUNZIP_Test Retorno Number: INT Parametros Number: INT Descrição: Testa a descompactação. Função: addUNZIP_Initialise Descrição: Inicializa o processo de descompactação. Função: addUNZIP_Overwrite Number: LONG Retorno Parametros Number: INT Descrição: Sobrescrever se existir o mesmo arquivo no local da descompactação. . Função: addUNZIP_ArchiveName Number: INT Retorno Parametros String: LPSTR Função: addUNZIP_Include Number: INT Retorno Parametros String: LPSTR Descrição: Inclui o arquivo na lista dos arquivos a serem descompactados. Usado quando um arquivo compactado tiver vários arquivos e só haja a necessidade de descompactar alguns. Função: addUNZIP_ExtractTo Number: INT Retorno Parametros String: LPSTR Descrição: Extrai para um local especificado
Função: addUNZIP_RestoreStructure Number: INT Retorno Parametros Number: INT Descrição: Descompactar para pasta de origem, restaurando a estrutura de diretórios. Função: addUNZIP_Decrypt Number: INT Retorno Parametros String: LPSTR Descrição: Descriptografa o arquivo errado. Função: addUNZIP_SetParentWindowHandle Number: INT Retorno Parametros Window Handle: HWND Função: addUNZIP_SetWindowHandle Number: INT Retorno Parametros Window Handle: HWND Declare também a constante Number: azCOMPRESSION_MAXIMUM = 0x03 Pronto agora e só colocar a mão na massa :D
Compactando Arquivo Call Call Call Call Call
SalWaitCursor( 1) addZIP_Initialise( ) addZIP_SetParentWindowHandle( hWndForm ) ad dZIP_SetWindowHandle( wHandle ) addZIP_SetCompressionLevel(azCOMPRESSION_MAXIMUM)
If cbEstrutura ) Call addZIP_SaveStructure( -1 Else Call addZIP_SaveStructure(0) If cbDeletar Call addZIP_Delete(1) Else Call addZIP_Delete(0) If NOT dfSenha = STRING_Null If dfSenha = dfConfirmaSenha Call addZIP_Encrypt(dfSenha) Else Call SalMessageBeep( - 1 ) Call SalMessageBox( 'A senhas não conferem', 'Atenção', MB_Ok ) Call addZIP_Include( sArquivo ) Call addZIP_ArchiveName( sArquivoCompactado ) If addZIP() Call SalMessageBeep( - 1 ) Call SalMessageBox( 'Arquivo Compactado Com Sucesso !!! ', 'Atenção', MB_Ok ) Else Call SalMessageBeep( - 1 ) Call SalMessageBox( 'Não Foi Possivel Descompactar ', 'Atenção', MB_Ok ) Call SalWaitCursor( 0 )
Descompactar Arquivo Call SalWaitCursor( 1 ) Call addUNZIP_Initialise( ) Call addUNZIP_SetParentWindowHandle( hWndForm ) Call addUNZIP_SetWindowHandle( wHandle )
If NOT dfSenha = STRING_Null If dfSenha = dfConfirmaSenha Call addUNZIP_Decrypt(dfSenha) Else Call SalMessageBeep( - 1 ) Call SalMessageBox( 'Senhas não confere ', 'Atenção', MB_Ok ) If cbSobrescrever Call addUNZIP_Overwrite(1) Else Call addUNZIP_Overwrite(0) If cbRestauraEstrutura Call addUNZIP_RestoreStructu re( -1 ) Else Call addUNZIP_RestoreStructure(0) Call addUNZIP_ArchiveName(sArquivoCompactado) Call addUNZIP_ExtractTo(sDriver) If addUNZIP() Call SalMessageBeep( - 1 ) Call SalMessageBox( 'Arquivo Descompactado Com Sucesso !!! ', 'Atenção', MB_Ok ) Else C all SalMessageBeep( - 1 ) Call SalMessageBox( 'Não Foi Possivel Descompactar ', 'Atenção', MB_Ok ) Call SalWaitCursor( 0 )
O exemplo que criei não utiliza todas as funções, agora e só explorar todo o potencial destas dll. Qualquer duvida entre em contato comigo.
Leandro Neves
[email protected] http://mundogupta.blogspot.com/
This document was created with Win2PDF available at http://www.daneprairie.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only.