Compactando Arquivos no Visual Basic 6
Que tal um compactador decente e grátis ???? Tudo mundo vai querer !!! Muito bem , neste artigo estarei mostrando como usar duas bibliotecas freeware ( grátis ) para compactar e descompactar arquivos. |
Azip32.dll e Aunzip32.dll fazem o serviço de descompactar e compactar arquivos , sendo que os arquivos gerados são compatíveis com o PKzip e o Winzip .
Vamos mostrar um projeto utilizando as bibliotecas.
Inicie o Visual Basic e no formulário padrão insira: Três caixas de textos, dois botões de comando e as labels conforme exibida na figura abaixo:
Código do botão Compactar:
Private Sub cmdCompactar_Click() Compacta txtArqCompactado, txtArqOrigem lblProgresso = "" End Sub |
Para o caso em questão teremos o comando compacta executado da seguinte forma:
Compacta "pak.zip" , "c:\teste\*.mdb"
Traduzindo: Os arquivos com extensão mdb do diretório c:\teste serão compactados gerando o arquivo pak.zip. Como não informamos o local onde o arquivo deveria ter sido gerado , ele será gerado no diretório atual.
Código do botão Descompactar:
Private
Sub cmdDescompacta_Click() DesCompacta txtArqCompactado, "*.*", txtExtrairPara , False End Sub |
A rotina para descompactar para o nosso caso seria:
Descompacta "pak.zip" , "*.*" , "c:\teste"
Traduzindo: O arquivo pak.zip será descompactado , sendo que todos os arquivos deverão ser extraídos ( *.* ) para o diretório c:\teste.
Código do evento Form Load
Private
Sub Form_Load() 'É necessário inicializar a biblioteca de compactação. InicializaZip Me, txtZip End Sub |
Aqui estamos iniciando a biblioteca de compactação.
Código do evento Change da label txtzip. Mostra o progresso da (des)compactacão em porcentagem.
Private Sub txtZip_Change() 'Indicação de progresso da compactação/descompactação por arquivo 'Tipo de ação que esta sendo feita no momento lblProgresso = TipoAção(Val(GetAction(txtZip))) & " " 'Nome do arquivo que esta sendo compactado lblProgresso = lblProgresso & GetFileName(txtZip) & " -> " 'Porcentagem de compactação do arquivo lblProgresso = lblProgresso & GetPercentComplete(txtZip) & "%" 'Força a atualização da tela DoEvents End Sub |
O evento Change do exibe o progresso da (des)compatação indicando o nome do arquivo e a porcentagem atual.
As funções usadas aqui estão definidas no módulo bas ( que eu não vou exibir por que é muito grande) . As principais funções são:
Função | Descrição |
GetPercentComplete | Retorna o progresso da tarefa medido em porcentagem |
GetFileOriginalSize | Retorna o tamanho original do arquivo sendo descompactado |
GetFileName | Retorna o nome do arquivo sendo compactado |
GetFileCompressionRatio | Retorna a taxa de compressão do arquivo sendo compactado |
GetAction | Usada com a função TipoAcao |
TipoAcao | Retorna o tipo de operação realizada atualmente |
O projeto sendo executado:
Agora só resta fazer o download dos arquivos e das dll´s. Clique aqui => Compactando no VB.
Se você precisa compactar para disquetes de 1.44 pegue aqui o projeto exemplo de autoria de Gesiel Ferreira de Souza : Backup em vários disquetes.
Inté mais . (Referência : Revista Fórum Access - Alexandre Scuriza )
José Carlos Macoratti