ПредишенСледващото

Вашият пощенски в Делфи. Бързо, ефективно, евтино!

След номер на публикация 2 Delphi компоненти, съдържащи различна функция архиви, се увеличава в геометрична прогресия. Аз не знам защо трябва да бъде, но разнообразието е страшно: техният размер варира от 30 KB 2 MB, цената - от 0 до 299 долара, и функции. Като цяло, много. Преди Delphi 4, тези компоненти постепенно прогресира и актуализирани с нови функции правят, но след това дойде срива. 6 версии са оцелели, според моите изчисления, около 4-5 достойни представители. Това наистина чудовища. Вярно е, XEEDZIP, който сега тежи 16 MB, аз не посмя да изтеглите, но като цяло това е функционално и скъпи продукти, той е достоен за такъв беден програмист като мен :).

Днес ние използваме компонент (или по-скоро, цяла колекция от компоненти), наречена ZipTV. Избрах го, защото той има всичко необходимо за работа с архиви. Той тежи сравнително малко и не съдържа нищо излишно. Но има нещо за настоящето] [. В края на краищата, той умело съчетава простотата и функционалността - да се научите как да използвате е по-лесно, отколкото се движат бъг в LogoWr, и пишат с помощта на WinZip - дело на 10 минути. Трябва само малко мозък, а ловкост и не измама.

След установяване на палитрата може да се възхищавал компоненти. Прибавят се толкова, колкото три раздела (ЗТВ Инструменти, ЗТВ Компресиране, ЗТВ декомпресира), съдържащ общо 35 (тридесет и пет) компоненти! Това е, аз разбирам, царско апартамент за работа с архиви!

1) TBlackHole. Създаден, за да се създаде черна дупка (*) .bh архиви.

2) TGZip. Тя ви позволява да създадете GZIP архиви. Много полезно нещо за yuniksoidov :).

3) TJar, TLha, TCab, TTar. В съответствие с това се създаде Jar, LHA, TAR и архиви.

5) TZip. Всъщност, най-важният компонент в нашия преглед. Той създава PKZip съвместим ZIP архиви.

След като обясни, защо в действителност, необходими компоненти на този раздел, е налице основателно въпрос - как да ги използвате? Също така е добра идея да се говори за някои от методите, свойствата и събитията.

Той създава архив е съвсем проста. Необходимо е да се възложи ArchiveFile свойства (вид: низ, името на бъдещето или съществуващия файл) и FileSpes (тип TStrings, съдържа списък с файлове за архивиране, можете да използвате и заместващи символи като * *.) Избройте ценностите, а след това използвайте метода за Compress тече zapakovki процес. Той ще ви върне към променлива от тип цяло число. Това ще бъде броят на архивирани файлове. Можете да добавите и парола собственост. Това ще е паролата за архива. Бъдете внимателни с главни и малки букви - те са различни.

1) TUnACE, TUnARJ, TUnBH, TUnCab. Разопаковайте, съответно, ACE, ARJ, BH (Blackhole) и MS кабини архиви.

2) TUnGZIP. Разархивира .gz. Z. катран .jz архиви.

3) TUnJar, TUnLha, TunRar, TunTar, TUnZip. Разархивирайте Jar (Java Soft формат), LHA, Rar, Tar, ZIP.

Процесът на декомпресия не е много по-различен от опаковката. Необходимо е да се определи подходящи стойности за ArchiveFile, FileSpec и ExtractDir (посочва директорията, в която да разопаковате) и започнете да разопаковате с метода Extract. Този път, той ще се върне към вас размера на непакетирани файлове. ВНИМАНИЕ! TUnACE TUnRAR и изискват значителен библиотека: unace.dll и unrar.dll съответно.

1) TArc2Arc. Той преобразува файлове от формат формат. За да направите това, ние трябва някои данни.

ArchiveFile - тук е написано името на стария файл.

NewArchive - новото име на архива.

OutArcType - тип на новия архив; например: tyZip, tyBH, tyLzh, tyCab.

OutArcMethod - начин да конвертирате.

IntegrityCheck - дали да се проведе нов архив проверих (вярно / невярно).

DateAttribute - коя дата да зададете файловете от новия архив.

daFileDate - същата дата, както и оригиналните файл.

daSysDate - дата система.

daMaxFileDate - датата на нов файл в архива.

Този имот е подходящ и за всички останали компоненти.

Активирайте - стартира процеса.

2) TMakeSFX. Създава SFX архив от обикновено.

ArchiveFile - обичайните името на архива.

TargetFile - Future Sfx'a.

SfxStubDir - определя .sfx файлове директория *. Те са необходими за компонент (например, за да се направи Zip'a на SFX, нужда ZTV_Zip.SFX) и пътя до тях по подразбиране - C: \ Windows \ System \.

Метод CreateSfx задейства целия този процес.

3) TZipTV. Както при всяка телевизия, той показва интимни подробности от архивите на живот. Това означава, че тя може да се използва, за да намерите почти никаква информация за архива и файловете, които съдържа.

ArchiveFile - посочва името на архива телевизионни звезди :).

FileSpec.Add - маска за пакетирани файлове. Тип данни - TStrings.

FilesInArchive - списък на архивираните файлове, отговарящи на маска от предишните свойства. Въведете също TStrings.

Граф - брой на пакетирани файлове.

TotalUnpackedSize - оригиналния размер на файла.

TotalPackedSize - размера на пакетирани файлове.

GetFileInfo - получава информация за архивирания файл. Например, като:

ArchiveFile - името му.

Дата - дата. Лесно е да се намери в божествена форма с помощта на функцията FormatDateTime. Това се извършва, например, като: FormatDateTime ( "mm-дд-гг ', ZipTV1.Date). Той ще се върне ли низ, съдържащ дата. Същото е и с течение на времето.

PackedSize - размера си след опаковането.

UnpackedSize - първоначалния си размер.

Съотношение - компрес съотношение.

Ето един забавен компонент. Ако се вгледате в помощ-файл с име tziptv.hlp, а след това можете да научите много повече.

4) TZipKey. Най] [- компонент в моя :) преглед. Фактът, че той, тъй като помага да се помни, забравени пароли. Знаеш ли, има архиви, защитени с парола и парола забравили или не знаят добре. Но да знаете, че би било желателно! Ето и напред. За този компонент, има много добра демонстрация (\ ZIPZV5 \ DEMO \ ZIPKEY \) и трябва да овладеят. Строго погледнато, има демо, но не всички от тях са толкова добри за много компоненти. Хакерската трудно факта, препоръчваме:

ArchiveFile - име на жертвата.

FileSpec - все едно маска за файловете.

Charsets - начин за намиране на пароли. Например, ако зададете Zipkey1.CharSets: = TCharSets (0), търсенето е ограничено до парола, състояща се от само цифри. Ако вместо нула е 8, а след това търсенето ще продължи всички ASCII символи. Всички стойности можете да научите от демоса (всичко е много ясно е направена), тъй като причината не е в помощта на този компонент. Между другото, търсенето може да се извърши и речник. Те могат да бъдат изтеглени уебсайта на програмиста в "Каталог". Има дори и китайски списък от думи. Ти, той със сигурност ще дойде по-удобно.

StartPassword - търсене започва с него.

Активирайте - стартира процеса.

Пауза - паузи :).

След като паролата е, събитието се нарича OnFound и парола имот придобива особено значение. И те трябва да се използват.

На тази приключа с преглед, така че да преминем към любимата ми кодиране.

Създаване на форма (по форма, един пример ще бъде доста голям) и нейният багаж 5 TEdit, 12 TLabel, 7 TButton, 2 TListBox, 2 TProgressBar, 1 TGroupBox. Тъй като така лесно да се разбере, че разнообразието не може да ме дори нека да разгледаме тази снимка:

Така че трябва да се огледам и нашето новородено проект. Това е време да се даде на имотите. Това са:

label1 - надпис "Open / създаване на файл"

LABEL2 - надпис "Паролата за архива"

label3 - надпис "Път към разопаковането"

Label4 - надпис "Път към архива на новороденото"

Label5 - надпис "Files"

label7 - надпис "първоначалния размер"

label9 - надпис "Размер след опаковането"

label11 - надпис "Ratio"

Label'y същата номерация 6, 8, 12, трябва да получите вместо caption'a само нули като нормални стойности, те ще рани половина само. Между другото, вече е късно, предупреждавам ви. Регистрационният формуляр не могат да направят, защото диска са 2 източника: регистрация, но на празен ход форма (за образователни цели) и под ключ проект за нетърпеливите. Добре, нека да продължи dizaynerstvo, пълнени на:

Button'y номер 1 и 2 се получава под формата на надпис елипса. Но останалата част:

Button3 - надпис "Add!"

Button4 - надпис "Архив"

Button5 - надпис "Разархивирайте"

Button6 - надпис "Създаване на SFX"

Button7 - надпис "Преобразуване"

GroupBox1 получава надпис "Съдържанието на архива."

Също така, не забравяйте да се определи формата на компонентите: Zip, разархивирайте, Arc2Arc, MakeSfx и OpenDialog на отметки диалогови прозорци.

Ето какво имам в резултат на:

На първо нека да се справят с откриването на архива и адаптация на интимните си тайни :). За да направите това, погледнете onklik първия бутон (с елипси):

Както винаги, всичко е просто и скучно. Ако потребителят избере име на файла, ние го давате ZipTv, възлага на маската *. * И печат на файлове в ListBox2 тази маска. Това означава, че всички файлове от архива. След това се показва повече информация за архива: броя на файловете, оригиналния размер на данни, опаковане размер и най-накрая, да компресирате съотношение. Фактът, че съставните разработчиците са дошли с тази функция цялата CalcRatio. Но за да го използвате, аз никога няма да се наведа :). Вземете оригиналния размер на 100% и да се изчисли колко е останало, това е силата на дори един ученик от приют за oligophrenics. И това ще бъде една и съща линия на код, така че няма да бъде :) волята за опростяване на предразсъдъци.

В първия listbox'e можете да създадете списък с файлове за архивиране. Това ще ни помогне Edit2, BUTTON2 и Button3 (което "Add!" Тя добавя съдържание Edit2 в ListBox1). BUTTON2 просто активира OpenDialog и влиза името на файла в Edit2. Ето как:

Въпреки това, маски (като * .exe. E.doc) трябва да попълните в Edit2 вече ръчно.

OnKlik погледнете бутона "Архив":

Променливата аз ще съдържа броя на пакетирани файлове. На следващо място, ние определяме името на архива, корелира с имуществото на съдържание ListBox1 FileSpec и поставете парола от Edit3. Започваме процеса и извежда резултата чрез ShowMessage.

Тук onklik бутона "Разархивирайте":

Всичко тук е много подобен на пакет, с изключение на новия ExtractDir собственост, за които има данни са взети от Edit4.

Създаване на SFX архив от обичайните не е лесно, но много прост. Това се прави в три реда код. Искам да кажа, тук тези редове:

АКО MakeSfx1.CreateSfx тогава ShowMessage ( "архив, създаден! ');

Това е Onklik върху бутона "Create SFX". Пътят към получения файл ще се определя от съдържанието на Edit5. Не забравяйте, че по подразбиране SFX файлове се търсят в системната директория.

Ето как:

Ако внимателно прочетете теорията, че вече разбрах: тук съм постоянно определи файловете източника и местоназначението, изберете пътя до реализацията. Това е цялата пример. Крайно време е малко да се модернизира. Не е чудно, че сложих на TProgressBar форма 2 :).

Създаване на събитие по отношение на компонента TZip1 OnProgress и vbey до следното:

Тези прости линии предоставят на потребителя мониторинг на две важни процеси: напредък в сегашната архивиране и архива като цяло.

Аз стартира нашата прог и отвори една от неговите архиви, бе информиран за това. Тогава имах желание да добавите файл към нея, което и направих с добър резултат - компрес съотношение е нещо като 34%.

В тази ситуация, това е нормално за пощенски алгоритъм по какъвто и изпълнение. Но RAR борави по-добре - 25%, а не нокти. Аз все още се чудя, WinZip популярност. Дали Drag'n'Drop очарова потребителите?

Това е всичко за днес. Останалото оставете на нашите читатели: четене на помощния файл на компонентите (въпреки че там не е всичко и е на английски език) и развитието на демо. След това можете да си компетентно лице в областта на архивиране на данни разгледа. Без майтап - защото клиентът няма значение колко ти направя програма. Важно е, че веднага след като е писано и как тя е функционална. Как бих казал ужасяващи. "Не се преосмисли колело и губене на време на копирането на това, което се прави, за да сте във формата на компоненти."

Свързани статии

Подкрепете проекта - споделете линка, благодаря!