Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?
Поиск
L


Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 8
Всего онлайн: 8
Зарегистрировано юзеров: 5762
Комментариев на сайте: 623
Новый юзер: Sevnday



Последние комментарии
c
N0E0O7 прокомментировал "Урок 1 - Инициализация OpenGL":
А у меня форма чёрная запускается
dimonsky прокомментировал "Урок 2 - Простые примитивы":
GetDC(handle) вместо canvas.handle, и убрать вызов FormResize. Тогда получается конфетка.



Мы в соцсетях
c
Delphi
Урок 71 - Работа с сжатыми файлами

В этом уроке мы рассмотрим библиотеку "7z.dll", с её помощью можно распаковывать архивы такого типа:

     Zip, BZ2, Rar, Arj, Z, Lzh, 7z, Cab, Nsis, Lzma, Pe, Elf, Macho, Udf, Xar, Mub, Hfs, Dmg, Compound, Wim, Iso, Bkf, Chm, Split, Rpm, Deb, Cpio, Tar, GZip

   Практически все существующие архивы. Попытаемся распаковать архив типа Zip. Для этого создадим проект и сам архив, назовем его 1.zip и положим рядом с программой.

   На форму вытащим кнопочку и напишем в событии OnClick вот такой код:

begin
  // Распаковывает файлы 
  with CreateInArchive(CLSID_CFormatZip) do
   begin
     OpenFile(ExtractFilePath(ParamStr(0)) + '1.zip');
     ExtractTo(ExtractFilePath(ParamStr(0)) + '1');
   end;
end;
   После, рядом с программой появится папка "1", с содержимым архива. И не забудьте подключить в Uses модуль SevenZip, его вы найдете в конце данного урока.

   Также можно создать архив:
begin
  // Добавляет файлы 
  with CreateInArchive(CLSID_CFormatZip) do
   begin
	 Arch.AddFile('Имя файла');
	 Arch.SaveToFile('Имя архива');
   end; 


   Задать уровень сжатия можно функцией SetCompressionLevel(Arch: I7zOutArchive, Level: Integer);. Как видите все просто.

   Для работы с другими архивами надо изменить константу CLSID_CFormatZip . Например для .Rar архива, константа будет иметь вид CLSID_CFormatRar, полный список можно увидеть кликнув по константе с зажатым Ctrl.

Удачи!
Встретимся в следующем уроке!

Зарегистрируйтесь или авторизуйтесь, чтобы скачать.

Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 2 Августа 2013
Просмотров:

Урок 70 - Динамические библиотеки DLL Урок 72 - Получение хеша файла

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил(а): Oleg_Guz [Новичок] Дата: 2013-12-04
Работает на УРА!




аватар Добавил(а): diggiti9105 [Новичок] Дата: 2013-12-13
выдает ошибку в юните 7z в начале, пишет не допустимы входной файл "п", если удалить он в другом месте выдает ошибку




аватар Добавил(а): man1207 [Новичок] Дата: 2014-03-15
diggiti9105, открой файл блокнотом и в меню Кодировки выбери UTF-8 (без BOM), сохрани и будет тебе счастье.




аватар Добавил(а): nik095 [Новичок] Дата: 2014-08-01
А никто не знает, как можно получить ClassId для CreateInArchive? Вариант посмотреть расширение файла архива не подходит )




аватар Добавил(а): Zeld [Новичок] Дата: 2014-08-17
Чет у меня ни как не хочет работать, 7z.dll кинул в папку с проектом. SevenZip в Uses прописал. Но на на SevenZip в uses и ругается(




аватар Добавил(а): Zeld [Новичок] Дата: 2014-08-17
Так, с SevenZip вопрос решил. Теперь, при выполнение распаковки архива, программа ругается на 7z.dll, хотя в папке всё ещё dll лежит




аватар Добавил(а): Alexandr_7 [Новичок] Дата: 2016-01-21
Тоже самое может кто поможет решить проблему. SevenZip скачал от сюда. а САМИ БИБЛИОТЕКИ СПЕР У 64 БИТНОЙ 7Zip обе версии как 32 так и просто 7zip и положил вместе с проэктом.




аватар Добавил(а): Alexandr_7 [Новичок] Дата: 2016-01-21
Решил проблему скачав 7zip для 32 битной винды и взяв от туда 7z.dll Но вопрос следующий. Как можно вывести процесс распаковки Помогите плиз.




аватар Добавил(а): Oleg_Guz [Новичок] Дата: 2016-05-06
Arch.SetProgressCallback(nil,ProgressCallback);




аватар Добавил(а): Tino [Новичок] Дата: 2016-10-22
--------------------------- Project1 --------------------------- Error loading library 7z.dll. --------------------------- ОК ---------------------------