LZMA: Nový kompresní algoritmus

Automaticky přeloženo z Deepl

Kdykoli si vyměňujeme soubory, vždy před odesláním procházíme rituálem komprese souborů. Od verze 4D v18 jsou k dispozici dva příkazy, které umožňují vytvořit a přečíst archiv ZIP pomocí standardního kompresního algoritmu zip.

S 4D V19 R3. Zip Create Archive příkaz podporuje nový kompresní algoritmus: LZMA. Výhodou tohoto algoritmu je, že vytváří menší archivy než standardní kompresní algoritmus zip. Pojďme se dozvědět více!

Co je to LZMA?

LZMA je zkratka pro Lempel-Ziv-Markovův řetězový algoritmus. LMZA je bezeztrátový kompresní algoritmus vytvořený Igorem Pavlovem. Tento algoritmus komprese dat používá slovníkové kompresní schéma podobné algoritmu LZ77, který publikovali Abraham Lempel a Jacob Ziv.

Jak jej používat?

Příkazu můžete předat objekt„zipArchive„. ZIP Create Archive příkazu a přizpůsobit si tak formát zip. Ten umožňuje zvolit kompresní algoritmus, šifrovací algoritmus a některé další možnosti. Přečtěte si dokumentaci, kde najdete další podrobnosti.

Pro kompresní algoritmus můžete nastavit atribut „komprese“ na:

  • ZIP Komprese žádná
  • Komprese ZIP Standard
  • Komprese ZIP LZMA
  • Komprese ZIP XZ

Pro úroveň komprese můžete nastavit atribut „level“ v rozsahu 1 až 10.

Zde je příklad, který komprimuje složku pomocí algoritmu LZMA:

var $zip $status : Object
var $destination : 4D.File
$zip :=New object
$zip .files:=Nová kolekce
$zip .files.push(Folder(fk documents folder).složka("Archiv 2020"))
$zip .compression:=ZIP Compression LZMA

$zip.level:=4
$destination :=Folder(fk desktop folder).file("Archive2020.zip")
$status :=ZIP Create archive($zip; $destination).

Zde je výsledek získaný na archivu o velikosti téměř 2 GB obsahujícím 1800 obrázků:

Zpět na vás! Neváhejte se podělit o své názory a dojmy na fóru.

Vanessa Talbot
• Product Owner • Vanessa Talbot se připojila k programovému týmu 4D v červnu 2014. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Od svého příchodu pracovala na definování klíčových prvků ve 4D. Pracovala na většině nových funkcí preemptivního multi-threadingu a také na velmi složitém tématu: nové architektuře pro enginované aplikace. Vanessa má titul z Telecom Saint-Etienne. Svou kariéru začala ve Výzkumném ústavu kriminalistickém jako vývojářka pro audiovizuální oddělení. Působila také v mediální a lékařské oblasti jako expertka na technickou podporu, produkci i dokumentaci novinek.