Добро пожаловать в Forum.iCoder.Uz

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. После регистрации и входа в систему вы сможете создавать темы, публиковать ответы на существующие темы, повышать репутацию других участников, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?

Задать вопрос

Задавайте вопросы и получайте ответы от нашего сообщества

Отвечать

Отвечайте на вопросы и станьте экспертом в своей теме

Связаться с нами

Наши специалисты готовы ответить на ваши вопросы

Delphi Работа с сжатыми файлами

  • Автор темы Rusik123
  • Дата начала
  • Ответы 1
  • Просмотры 2K

Информация о теме

О теме Здравствуйте, вы читаете тему Работа с сжатыми файлами созданную в в разделе Delphi, Pascal пользователем Rusik123. Эта тема была просмотрена 1 686 раз(а), получила 1 комментариев и 0 очки реакции...
Название категории Delphi, Pascal
Название темы Работа с сжатыми файлами
Автор темы Rusik123
Дата начала
Ответы
Просмотры
Количество реакций к первому сообщению
Последнее сообщение xStyle

Rusik123

Пользователь
Пользователь
Регистрация
27.02.2016
Сообщения
188
Реакции
18
Баллы
0
м уроке мы рассмотрим библиотеку "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 вот такой код:
PHP:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержимого кодов!
После, рядом с программой появится папка "1", с содержимым архива. И не забудьте подключить в Uses модуль SevenZip, его вы найдете в конце данного урока.
Также можно создать архив:
PHP:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержимого кодов!
Задать уровень сжатия можно функцией SetCompressionLevel(Arch: I7zOutArchive, Level: Integer);. Как видите все просто.
Для работы с другими архивами надо изменить константу CLSID_CFormatZip . Например для .Rar архива, константа будет иметь вид CLSID_CFormatRar, полный список можно увидеть кликнув по константе с зажатым Ctrl.

Удачи!
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Rusik активный пользователь!
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Запомни эту фразу,все будет,но не сразу
 

xStyle

Пользователь
Пользователь
Регистрация
28.03.2016
Сообщения
14
Реакции
1
Баллы
0
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания цитаты!

С какого перепуга стали эти типы файлов архивными ? :mocking: Ссылка на wiki
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержания URL!


АВТОР В СЛЕДУЮЩИЙ РАЗ НЕ НЕСИ ЧУЖЖЖЖЖ!!!! модераторы вы куда смотрите ? :icon_help:

Карочи для тех кто в ТАНКЕ объясню что и как с этими файлами :wink:

И я раскажу тока о 32 битной архитектуре 64 нам не к чему думаю если бедет интересно то могу объяснить :wink:

Файл формата ELF состоит из следующих частей:

1. Заголовок ELF файла
2. Таблица программных секций
3. Секции ELF файла
4. Таблица секций
5. Ради производительности в формате ELF не используются битовые поля. И все структуры обычно выравниваются на 4 байта.


ЗАГОЛОВОК ФАЙЛА

Код:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержимого кодов!

Массив e_ident содержит в себе информацию о системе и состоит из нескольких под полей.

Код:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержимого кодов!




Загрузка формата ELF.

Код:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержимого кодов!



Формат PE.

Во многом он аналогичен формату ELF, ну и не удивительно, там так же должны быть секции, доступные для загрузки.
Как и все в Microsoft :) формат PE базируется на формате EXE. Структура файла такова:

1. 00h - EXE заголовок
2. 20h - OEM заголовок
3. 3сh - смещение реального PE заголовка в файле (dword).
4. Таблица перемещения stub
5. stub
6. PE заголовок
7. Таблица объектов
8. Объекты файла

Структура его такая:

Код:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержимого кодов!



Вот на флагах стоит остановиться поподробнее.

00000004h - используется для кода с 16 битными смещениями
00000020h - секция кода
00000040h - секция инициализированных данных
00000080h - секция неинициализированных данных
00000200h - комментарии или любой другой тип информации
00000400h - оверлейная секция
00000800h - не будет являться частью образа программы
00001000h - общие данные
00500000h - выравнивание по умолчанию, если не указано иное
02000000h - может быть выгружен из памяти
04000000h - не кэшируется
08000000h - не подвергается страничному преобразованию
10000000h - разделяемый
20000000h - выполнимый
40000000h - можно читать
80000000h - можно писать



Загрузка формата PE.

Код:
Пожалуйста, Войдите или Зарегистрируйтесь для просмотра содержимого кодов!
 
shape1
shape2
shape3
shape4
shape7
shape8
Сверху Снизу