Užitečné komponenty pro Delphi a C++ Builder, díl 18.

Formát zip je jistě jedním z nejpopulárnějších komprimačních formátů a dnes naleznete na internetu jen málo aplikací či dat, které jsou zkomprimovány v jiném formátu. Proto pokud vaše aplikace pracuje s archivy, je podpora formátu zip naprostou nutností. Dnes si představíme komponentu, která vám v tom pomůže.

Delphi Zip v1.60p - TZipMaster

Tento projekt má již poměrně dlouhou a tak trochu smutnou historii, protože jeden z původních autorů před časem zemřel na rakovinu. Někdy se až zdá při tom brouzdání po světových serverech všechno natolik virtuální, že si člověk skoro vůbec neuvědomí, že za vším vlastně stojí smrtelní lidé.

Ale pojďme k popisu samotné komponenty, jejíž vývoj pokračuje neustále dál. Jak již bylo řečeno v úvodu, komponenta má za cíl programátorům pokud možno co nejvíce ulehčit práci se soubory formátu zip a kromě samotné dekomprimace či komprimace nabízí řadu dnes již standardních funkcí, na které jsme u komprimačních programů zvyklí.

Samotná komponenta, která se vám nainstaluje do Delphi, vlastně "jen" zprostředkovává funkce dvou freeware DLL knihoven Zip a Unzip. Ty jsou pochopitelně součástí celého projektu a dodávané s komponentou. Dostupné jsou rovněž zdrojové kódy.

Uveďme si teď některé vlastnosti této komponenty:

AddCompLevel - Jak jistě správně tušíte, tento parametr určuje úroveň komprese a nabývá klasicky hodnot od 0 do 9, přičemž 0 není žádná komprese, soubory se pouze uloží v původní velikosti.

AddOptions - Souhrn parametrů pro několik dalších vlastností jako jsou například atributy souborů (archiv, skrytý atd...), zda má být archiv zašifrován (vámi definovaným heslem), rozdělení archivu na několik médií podle zvolené velikosti a podobně.

Cancel - Pokud tuto vlastnost nastavíte na hodnotu True, veškerá akce s archivem (tj. hlavně komprimace či dekomprimace) bude přerušena.

CodePage - Kódová stránka, ve které budou uloženy v archivu názvy souborů a popisky, což jistě využijete v případě české diakritiky.

Count - Udává počet souborů v aktuálním archivu.

DLLDirectory - Zde je možno specifikovat cestu k potřebným DLL knihovnám, pokud nechcete nechat systém, aby je našel sám na obvyklých místech (adresář s aplikací, adresář System atd.).

ErrCode - Číslo posledního chybového hlášení, ke kterému došlo. Pochopitelně si můžete nechat vypsat též slovní interpretaci případné chyby.

ExtrBaseDir - Adresář pro dekomprimované soubory.

ExtrOptions - Opět souhrn několika vlastností, tentokrát týkající se dekomprimace souborů z archivu. Zda se mají soubory rozbalovat včetně cesty, zda se mají přepisovat existující soubory, testování integrity archivu a další.

Password - Zde je uloženo případné heslo, které se použije při komprimaci či dekomprimaci. Pokud tato položka nebude vyplněna a knihovna přesto narazí na archiv chráněný heslem, dotáže se na něj uživatele přímo.

SFXCaption - Titulek dialogového okna, které se objeví při spuštění samorozbalovacího archivu, které můžete taktéž snadno vytvářet.

SFXDefaultDir - Implicitní adresář, kam budou soubory ze samorozbalovacího archivu uloženy. Jelikož je tento typ archivu často použit i jako jakási forma instalátoru, můžete též specifikovat ikonu souboru, různá upozornění uživateli před dekomprimací, můžete též specifikovat příkazový řádek, který bude po rozbalení spuštěn a řadu dalších užitečných vlastností, se kterými nebude problém vytvořit vlastní instalaci pro vaši aplikaci.

SuccessCnt - Číslo, které udává aktuální počet úspěšně provedených operací s archivem, tedy počet souborů, které se již podařilo bezchybně zabalit, rozbalit či smazat z archivu atd.

TempDir - Zde můžete určit pracovní složku, pokud chcete z nějakého důvodu použít jinou než tu standardní systémovou.

TotalSizeToProcess - Tato hodnota udává celkový součet velikostí souborů před kompresí, čehož můžete velice snadno využít pro různé ukazatele průběhu komprimace a podobně.

UnzBusy - Vlastnost, která udává, zde se právě nějaký soubor dekomprimuje a zda je tím pádem nutné počkat s rozbalením dalšího souboru.

ZipBusy - Obdoba předchozí vlastnosti, tentokráte pro komprimaci.

ZipComment - Text, který bude přidán jako komentář k archivu.

ZipContents - Jedná se o seznam důležitých vlastností právě aktuálního archivu či přesněji řečeno jeho jednotlivých souborů. Mezi tyto vlastnosti patří kromě názvů zejména datum, velikost původního a zabaleného souboru, CRC, číslo verze komprimátoru a další a další.

ZipFileName - A zde je vůbec nejdůležitější vlastnost, určující cestu k samotnému souboru s archivem.

Tak to by mohlo k vlastnostem komponenty stačit a podíváme se ještě velice stručně na metody, které nám nabízí. Jsou to samozřejmě metody, umožňující základní operace s archivem jako je vytvoření nového archivu a přidávání položek, dekomprimace, mazání, výpis souborů v archivu (tedy zobrazení jeho struktury bez nutnosti dekomprimace), přejmenování položek, kopírování, ale také například převod běžného archivu na samorozbalovací a řada dalších funkcí.

Celý balík je dodáván také s množstvím ukázkových aplikací a přehledné nápovědy, takže jistě nebude problém se s komponentou rychle zapracovat.

Na domovské stránce naleznete také zdrojové kódy obou knihoven v C++ Builderu.

Ačkoliv nejnovější aktuální verze má status betaverze, nenarazil jsem během testování na žádné potíže. Vše by mělo bez problému fungovat pod Delphi 2 až 6 a na domovské stránce naleznete též verzi pro C++ Builder.

www
verze: 1.6p beta
Delphi: 2-6
C++ Builder: ?

Váš názor Další článek: Psion netBook má nový operační systém

Témata článku: , , , , , , , , , , , , , , , ,