LZMA: Der neue Komprimierungsalgorithmus

Wenn wir Dateien austauschen, komprimieren wir sie immer, bevor wir sie versenden. Seit 4D v18 gibt es zwei Befehle, mit denen Sie ein ZIP-Archiv mit dem Standard-Zip-Kompressionsalgorithmus erstellen und lesen können.

Mit 4D V19 R3 unterstützt der Zip Create Archive Befehl einen neuen Kompressionsalgorithmus: LZMA. Der Vorteil dieses Algorithmus ist, dass er kleinere Archive erzeugt als der Standard-Zip-Kompressionsalgorithmus. Finden wir mehr heraus!

Was ist LZMA?

LZMA ist die Abkürzung für Lempel-Ziv-Markov-Ketten-Algorithmus. LMZA ist ein verlustfreier Komprimierungsalgorithmus, der von Igor Pavlov entwickelt wurde. Dieser Datenkomprimierungsalgorithmus verwendet ein Wörterbuchkomprimierungsschema, das dem von Abraham Lempel und Jacob Ziv veröffentlichten LZ77-Algorithmus ähnelt.

Wie wird er verwendet?

Sie können ein„zipArchive„-Objekt an den ZIP Create Archive Befehl übergeben, um Ihr zip anzupassen. Damit können Sie den Kompressionsalgorithmus, den Verschlüsselungsalgorithmus und einige andere Optionen auswählen. Lesen Sie die Dokumentation für weitere Details.

Für den Komprimierungsalgorithmus können Sie das Attribut „Komprimierung“ auf setzen:

  • ZIP-Komprimierung Keine
  • ZIP-Komprimierung Standard
  • ZIP-Komprimierung LZMA
  • ZIP-Komprimierung XZ

Für den Komprimierungsgrad können Sie das Attribut „level“ zwischen 1 und 10 einstellen.

Hier ist ein Beispiel, das einen Ordner mit dem LZMA-Algorithmus komprimiert:

var $zip; $status: Object
var $destination : 4D.File
$zip :=New object
$zip .files:=Neue Sammlung
$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)

Hier ist das Ergebnis für ein Archiv von fast 2 GB mit 1800 Bildern:

Zurück zu Ihnen! Zögern Sie nicht, Ihr Feedback und Ihre Eindrücke im Forum zu teilen.

Vanessa Talbot
Product Owner - Vanessa Talbot kam im Juni 2014 zum 4D Programmteam. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.