-=RUS=- | Дата: Пятница, 28.11.2014, 00:05 | Сообщение # 1 |
 Генералиссимус
Группа: Администраторы
Сообщений: 352
Статус: Offline
| (LZ.doc)
(С) Flame Association may, 1996
████┐ █████████┐ └██┼┘ ██┼┴┴┴┴██┤ ██┤ └┴┘ ███┼┘ ██┤ ███┼┴┘ ██┤ ███┼┴┘ ██┤ ██┐ ██┼┴┘ ██┐ █████████┤ █████████┤ └┴┴┴┴┴┴┴┴┘ └┴┴┴┴┴┴┴┴┘
Архиватор LZ. ¯¯¯¯¯¯¯¯¯¯¯¯¯ Группа Flame представляет свою разработку - программу LZ. Это - архиватор: программа, предназначенная для сжатия файлов, каталогов или целиком дисков с целью хранения, а также умень- шения занимаемого на дисках места. Такие программы, конечно же, широко известны пользователям персоналок (на IBM PC их существу- ет несметное количество), однако на БК авторам до сих пор ничего подобного не встречалось. Наша программа - попытка восполнить этот досадный пробел. Необходимо сразу указать, что, во-первых, LZ работает только на БК0011М, во-вторых, только под операционной системой ANDOS (начиная с версий, в которых появились подкаталоги). Однако, по- видимому, возможна версия для БК0010 с дополнительной памятью около 16кБ, но у нас нет таких машин.
Метод упаковки данных позаимствован из журнала "Монитор", в котором была опубликована серия статей об алгоритмах сжатия. Нами были реализованы практически все методы, и был выбран ме- тод, дающий неплохое сжатие при высокой скорости работы. (Если кого интересуют методы, алгоритмы, исходные тексты - пишите, обещаю ответить всем.)
Пользоваться архиватором элементарно просто. После запуска архиватора работа идет в командной строке. Существует всего 5 команд (команды можно давать и заглавными, и строчными буквами):
а - архивирование;
x - распаковка архива; e - распаковка файла из архива;
l - посмотреть каталог архива;
q - выход из архиватора.
После буквы команды указываются через пробел входное и (если необходимо) выходное имя. Для команды "а" входное имя - это имя каталога, файла или диска, который упаковывается в архив, выход- ное имя - имя архива, который будет создан. Например:
"a Lines b:LINES" - упаковать каталог Lines, находящийся на текущем диске в архив LINES.LZ на диске В.
"a А:TETRIS.EXE B:" - упаковать файл TETRIS.EXE, находящийся на диске А в архив с тем же именем на диск В (но расширение имени архива всег- да будет LZ).
"a A: C:disk_A" - упаковать диск А на диск С в файл disk_A.LZ.
Для команд распаковки входное имя – это имя архивного файла (расширение можно не указывать), а выходное - имя диска, куда распаковывать. Выходное имя для команды "x" - это имя диска, куда распаковывать архив, для команды "е" - имя файла, который распаковывать (если указать ещё и имя диска, файл будет распако- ван на указанный диск). Например:
"x B:LINES A:" - распаковать архив LINES.LZ с диска B на диск А.
"е LINES A:LINES.OVL" - распаковать на диск А файл LINES.OVL из архива LINES.LZ, находящегося на текущем диске.
Команда "l <имя_архива>" печатает на экране каталог архива.
Если подана неправильная команда, архиватор печатает "под- сказку", в которой квадратные скобки означают необязательные параметры, "dev:" - имя диска.
При распаковке архива воссоздается структура каталогов вместе с подкаталогами (имейте в виду, что вы можете получить несколько каталогов с одинаковыми именами, если одноименные с архивными каталоги уже были на диске), одноименные файлы переименновывают- ся в файлы с расширением ".BAK".
Если у вас версия "beta", перед работой с архиватором сожмите каталог диска командой "Press dir" Disk Master’а!
------------------------------------------------- ВНИМАНИЕ! ПРИ РАБОТЕ АРХИВАТОРА LZ ВИРТУАЛЬНЫЙ ДИСК БУДЕТ УНИЧТОЖЕН! По этой же причине невозможна работа с виртуальным диском. -------------------------------------------------
Для работы с дисками других систем имеется версия DLZ, сжимающая диск целиком как устройство.
****************************************************************
Flame Association: Пашигоров Е.Г., ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Сизых П.Л.
682071, Хабаровский край, Верхнебуреинский р-он, п. Новый Ургал, ул. Ростовская, д. 4, кв. 121.
****************************************************************
Только через полгода после написания этой документации нам попался архиватор Data Press by LAV corp., и появилась возмож- ность сравнить две примерно одинаковых по цели программы. Несомненным достоинством DPRESS’a является способность рабо- тать: 1) в двух операционных системах и 2) на БК0010.
Пробы на разных файлах показали примерно одинаковую эффектив- ность сжатия обоих архиваторов (в некоторых случаях чуть лучше сжимал DPRESS, в некоторых - LZ), однако время архивирования DPRESS’ом намного больше, чем у LZ. Файл размером 16кБ сжимался DPRESS’ом около минуты, LZом - 6..7 секунд. Причём реализованные нами алгоритмы LZW (15 сек/16кБ) и Хаффмена (30 сек/16кБ) были забракованы именно из-за своей медлительности, а сжимали они процентов на 10..20 лучше (Хаффмен практически всегда чуть-чуть опережал по сжатию LZW) При распаковке DPRESS отстал несильно - раза в два (время на дисковые операции не учитывалось). Также, несмотря на "красивый" интерфейс, работать DPRESS’ом нам показалось менее удобно, хотя это, наверное, дело вкуса. А с ARJ его роднит, к сожалению, только формат каталога, а не методы сжатия (распаковывать на БК файлы ARJ нам в голову не приходило).
А в общем-то, мы - судьи пристрастные, и конечное слово оста- нется за пользователем (к тому же данной версии DPRESS’а уже два года, за это время многое можно было улучшить).
****************************************************************
|
|
| |