
Московский авиационный институт
Кусовая работа по дисциплине
“Дискретный анализ”
Группа 8Б-203
Задание: Создание архиватора
Архивая и распаковка
Преподаватель:Борисова Вера Ионовна ___________
Студент: Колпаков Сергей Александрович ____________
Содержание
1)Введение..................................................................................................................3
2)Теоретическая часть................................................................................................4
Потоки данных..................................................................................................4
3)Архивация................................................................................................................5
4)Практическая часть.................................................................................................7
Фуркция архивации...........................................................................................7
Функция распаковки..........................................................................................8
5)Работа с программой..............................................................................................9
Меню программы..............................................................................................9
Меню архивации...............................................................................................10
Меню распаковщика.........................................................................................12
6)Заключение.............................................................................................................14
7)Список литературы..................................................................................................15
Введение:
Задание: Создать архиватор в любой среде программирования.
Среда программирования в которой выполнялось задание – Delphi
В роли подручных средств я буду использовать Delphi 7, нужна именно 7-я версия. Начиная с Delphi 7, в комплект поставки вместе с исходными кодами входит библиотека ZLib, Которая представляет достаточно неплохой алгоритм сжатия данных, основанный на методах LZW – Компрессии (алгоритмы Зива-Лэмпела). Для использования библиотеки надо подключить модуль ZLib в список использованных модулей (user).
Лично мне это было полезным при создании инсталяторов (для экономии места и уменьшения размера инсталятора), а также в некоторых сетевых программах, где возникала необходимость передавать файлы. Дя уменьшения размера файлов и, соответственно, экономии трафика, я сжимал передтем, как передавать файл. А на другой стороне распаковывал.
Теоретическая часть
Библиотека ZLib предоставляет только функции для работы с единичными файлами. Это пример – демонстрационнй, и тут реализована работа только с единичными дайлами. Для того, чтобы архивировать целые папки, надо программу модифицировать. Это несложно сделать, действовать надо примерно так : рукурсивно обойти вложенные каталоги, сформировать и сохранить в заголовке древовидную структуру, представляющую файлы и каталоги. Размер структуры записать в самое начало архива, и отвести под представление размера фиксированое число байта.
Для понимания сути происходящих процессов, нам понадобятся некоторые предварительные сведения о потоках данных в Delphi. К изложению этих сведений мы и приступаем.