LZMA : le nouvel algorithme de compression

Traduit automatiquement de Deepl

Chaque fois que nous échangeons des fichiers, nous passons toujours par le rituel de la compression des fichiers avant de les envoyer. Depuis 4D v18, deux commandes sont disponibles, vous permettant de créer et de lire une archive ZIP en utilisant l’algorithme standard de compression zip.

Avec 4D V19 R3, la commande Zip Create Archive supporte un nouvel algorithme de compression : LZMA. L’avantage de cet algorithme est qu’il crée des archives plus petites que l’algorithme de compression standard zip. Voyons-en plus !

Qu’est-ce que LZMA ?

LZMA est l’acronyme de Lempel-Ziv-Markov chain algorithm. Le LZMA est un algorithme de compression sans perte créé par Igor Pavlov. Cet algorithme de compression de données utilise un schéma de compression par dictionnaire similaire à l’algorithme LZ77 publié par Abraham Lempel et Jacob Ziv.

Comment l’utiliser ?

Vous pouvez passer un objet« zipArchive » à la commande ZIP Create Archive pour personnaliser votre zip. Cela vous permet de choisir l’algorithme de compression, l’algorithme de cryptage et quelques autres options. Lisez la documentation pour plus de détails.

Pour l’algorithme de compression, vous pouvez définir l’attribut « compression » sur :

  • Compression ZIP Aucune
  • Compression ZIP Standard
  • Compression ZIP LZMA
  • Compression ZIP XZ

Pour le niveau de compression, vous pouvez définir l’attribut « level » entre 1 et 10.

Voici un exemple qui compresse un dossier en utilisant l’algorithme LZMA :

var $zip; $status: Object
var $destination : 4D.File
$zip :=New object
$zip .files:=Nouvelle collection
$zip .files.push(Folder(fk documents folder).folder("Archive 2020"))
$zip .compression:=ZIP Compression LZMA
$zip.level:=4
$destination :=Folder(fk desktop folder).file("Archive2020.zip")
$status :=ZIP Create archive($zip; $destination)

Voici le résultat obtenu sur une archive de près de 2GB contenant 1800 images :

A vous de jouer ! N’hésitez pas à partager vos retours et impressions sur le forum.

Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.