Sempre que trocamos ficheiros, passamos sempre pelo ritual de comprimir os ficheiros antes de os enviarmos. Desde 4D v18, dois comandos estão disponíveis, permitindo-lhe criar e ler um arquivo ZIP usando o algoritmo de compressão zip padrão.
Com 4D V19 R3, o Zip Create Archive suporta um novo algoritmo de compressão: LZMA. A vantagem deste algoritmo é que cria arquivos mais pequenos do que o algoritmo de compressão zip padrão. Vamos descobrir mais!
O que é o LZMA?
LZMA é o acrónimo de Lempel-Ziv-Markov chain algoritmo. LMZA é um algoritmo de compressão sem perdas, criado por Igor Pavlov. Este algoritmo de compressão de dados utiliza um esquema de compressão de dicionário semelhante ao algoritmo LZ77 publicado por Abraham Lempel e Jacob Ziv.
Como utilizá-lo?
Pode passar um objecto“zipArchive” para o ZIP Create Archive comando para personalizar o seu fecho. Isto permite-lhe escolher o algoritmo de compressão, o algoritmo de encriptação, e algumas outras opções. Leia a documentação para mais detalhes.
Para o algoritmo de compressão, é possível definir o atributo “compressão”:
- Compressão ZIP Nenhuma
- Padrão de Compressão ZIP
- Compressão ZIP LZMA
- Compressão ZIP XZ
Para o nível de compressão, pode definir o atributo “nível” entre 1 a 10.
Aqui está um exemplo que comprime uma pasta utilizando o algoritmo LZMA:
var $zip; $status: Object
var $destination : 4D.File
$zip :=New object
$zip .files:=Nova colecção
$zip .files.push(Folder(fk documents folder).pasta("Arquivo 2020"))
$zip .compression:=ZIP Compression LZMA
$zip.
level:=4
$destination :=Folder(fk desktop folder).file("Archive2020.zip")
$status :=ZIP Create archive($zip; $destination)
Aqui está o resultado obtido num arquivo de quase 2GB contendo 1800 imagens:
De volta para si! Não hesite em partilhar os seus comentários e impressões sobre o fórum.