ZLib fácil com JazzZip
Para tornar fácil o trabalho de embutir recursos (Textos, Imagens, Vídeos, etc) nos meus aplicativos, achei interessante adicionar a possibilidade de compactar e decompactar estes estes recursos, então criei uma interface que simplifica o uso da ZLib e é flexível para ser re-utilizada com outros tipos de compactação, clique aqui para ver a unit JazzZip.pas
Duas classes base foram criadas TJzZip e TJzUnzip, ambas contém o método execute que é sobrescrito nas classes que implementam a chamada a compactação/descompactação. Para ZLib criei especificamente TJzZLibZip e TJzZLibUnzip.
Mas não é necessário conhecer as classes base e nem as classes que implementam a compactação, basta chamar os métodos públicos ZipData e UnzipData, estes métodos contém overloads para simplificar as diferentes necessidades.
É possível compactar TStream ou Strings, sendo o parâmetro de saída opcional, quando se tratar de um TStream.
Exemplos:
Compactar um TStream e salvar em um arquivo
|
procedure TZipForm.SaveFile(Data: TMemoryStream; const FileName: string); |
Carregar um arquivo compactado com zlib em um TStream e descompactar
|
procedure TZipForm.LoadFile(Data: TMemoryStream; const FileName: string); |
Várias outras opções estão disponíveis e é bem simples de implementar uma classe para utilizar outros compactadores.
Criei um projeto com exemplo de outras funcionalidades
Download do projeto, contendo a unit JazzZip.pas
Os métodos ZipData e UnzipData, utilizam duas variáveis para criar as instâncias das classes de compactação e descompactação, se você especializar as classes base para por exemplo usar ZIP, basta definir nas variáveis as novas classes.
|
var |

0 Comments
You can be the first one to leave a comment.