Você está na página 1de 7

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 funçõ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
Retorno Number: INT
Descrição: Compacto o arquivo.

Função: addZIP_SaveStructure
Retorno Number: INT
Parametros Number: INT
Descrição: Salva a estrutura de pasta.

Função: addZIP_Delete
Retorno Number: INT
Parametros Number: INT
Descrição: Exclui arquivo após compactação.
Função: addZIP_Encrypt
Retorno Number: LONG
Parametros String: LPSTR
Descrição: Criptografa o arquivo e o protege com senha.

Função: addZIP_SetParentWindowHandle
Retorno Number: INT
Parametros Window Handle: HWND

Função: addZIP_SetWindowHandle
Retorno Number: INT
Parametros Window Handle: HWND

Funções de Descompactação

Função: addUNZIP
Retorno Number: INT
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
Retorno Number: LONG
Parametros Number: INT
Descrição: Sobrescrever se existir o mesmo arquivo no local da
descompactação.
.
Função: addUNZIP_ArchiveName
Retorno Number: INT
Parametros String: LPSTR

Função: addUNZIP_Include
Retorno Number: INT
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
Retorno Number: INT
Parametros String: LPSTR
Descrição: Extrai para um local especificado
Função: addUNZIP_RestoreStructure
Retorno Number: INT
Parametros Number: INT
Descrição: Descompactar para pasta de origem, restaurando a estrutura de
diretórios.

Função: addUNZIP_Decrypt
Retorno Number: INT
Parametros String: LPSTR
Descrição: Descriptografa o arquivo errado.

Função: addUNZIP_SetParentWindowHandle
Retorno Number: INT
Parametros Window Handle: HWND

Função: addUNZIP_SetWindowHandle
Retorno Number: INT
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 SalWaitCursor( 1)
Call addZIP_Initialise( )
Call addZIP_SetParentWindowHandle( hWndForm )
Call addZIP_SetWindowHandle( wHandle )
Call 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_RestoreStructure(-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
Call 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
leandroneves@gmail.com
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.

Você também pode gostar