LZMA: O novo algoritmo de compressão

Tradução automática de Deepl

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.

Vanessa Talbot
• Proprietário do produto - Vanessa Talbot entrou ao time 4D Program em Junho de 2014 como Proprietária do Produto e está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Desde sua chegada, trabalhou na definição de funcionalidades chaves em 4D. Trabalhou na maioria das novas funcionalidades multithread preemptivo e também em um tema muito complexo: a nova arquitetura para a aplicação engined. Vanessa é formada pela Telecom Saint-Etienne. Começou sua carreira no Instituto de Investigação Criminal como desenvolvedora do departamento audiovisual. Também trabalhou em meios de comunicação e no âmbito médico como especialista em assistência técnica, produção e documentação de novas funcionalidades.