Порядок работы сжатия
- Открытие и чтение файла
- Расчёт частоты встречаемости символов
- Создание дерева Хаффмана
- Создание кодов Хаффмана
- Запись в архивный файл таблицы кодов и признака длины исходного файла
Пункт 5 может быть выполнен 2-мя путями:
5.1. Медленный путь: Создание промежуточного файла, состоящего из 0 и 1 – закодированный полученным кодом первый файл.
5.2. Запись полученной последовательности в архивный файл.
или
5.1. Путь быстрее: Создание архивного файла из полученных до п.5 данных напрямую.
Порядок работы извлечения
- Открытие файла
- Чтение таблицы кодов символов
- Расшифровка сжатой двоичной последовательности в выходной буфер
- Запись содержимого буфера в извлечённый файл с контролем длины полученного файла с помощью признака длины (см. п.5 работы сжатия)
arh [mode] [input file] [output file] [info option]Обазательные аргументы:
-
mode- режим работы-
сжатие (
-cили--compress) -
извлечение (
-eили--extract)
-
-
input file- входной файл -
output file- выходной файл
Необязательные аргументы:
-
info option- вывод информации-
полный: таблица кодов и частот символов и временные затраты на операцию (
--full) -
вывод выключен (
--quiet)
-
По умолчанию, info option соответствует выводу только информации о временных затратах.
Например, чтобы сжать файл "nonarch.txt" в файл "archived" с выводом информации о затраченном времени, нужно выполнить такую команду:
arh -c nonarch.txt archivedПроект выполнялся на дисциплине "Углублённое изучение языка C"