вирусом и т. д. Для того чтобы уменьшить потери в таких ситуациях, следует иметь архивные копии используемых файлов и систематически обновлять копии изменяемых файлов. Для хранения архивов данных можно использовать внешние запоминающие устройства большой емкости, которые дают возможность легко скопировать жесткий диск (например, магнитооптика, стримеры, «Арвид» и др.)
Для копирования файлов можно, разумеется, использовать следующие средства:
— стандартные команды Сору, Xcopy, Diskcopy;
— программные средства PCtools, Norton Commander, Windows;
— программы непрерывного копирования Backup и Restore.
Однако при этом архивные копии занимают столько же места, сколько занимают исходные файлы, и для копирования нужных файлов может потребоваться много дискет.
Более удобно для создания архивных копий использовать специально разработанные программы архивации файлов, которые сжимают информацию. При архивировании степень сжатия файлов сильно зависит от их формата. Некоторые форматы данных (графические, Page Maker и др.) имеют упакованные разновидности, при этом сжатие производится создающей исходный файл программой, однако лучшие архиваторы способны поджать и их. Совсем другая картина наблюдается при архивации текстовых файлов, файлов PostScript и им подобных (текстовые файлы обычно сжимаются на 50–70 %, а программы на 20– 30 %).
Наиболее популярны архиваторы ARJ, LHA, RAR и PKZIP (имеет отдельный распаковщик PKUNZIP).
Большинство из этих программ не надо специально покупать, так как они предлагаются как программы условно-бесплатные (Shareware) или свободного распространения (Freeware). Хорошую помощь при архивации программ (поскольку каждый пользователь имеет любимый архиватор) могут оказать вам специальные «оболочки» (так называемые PackerShells), такие как SHEZ или GUS, которые самостоятельно определяют компрессированный файл и помогают его распаковать (так называемый процесс разархивации); аналогичные средства имеются в современных оболочках общего назначения (Norton Commander, DOS Navigator и др.). Подобные оболочки обычно лишь управляют имеющимися программами-архиваторами общего пользования. Архиватор RAR имеет собственную встроенную оболочку.
Принцип работы архиваторов основан на поиске в файле «избыточной» информации и последующем ее кодировании с целью получения минимального объема. Самым известным методом архивации файлов является сжатие последовательностей одинаковых символов. Например, внутри вашего файла находятся последовательности байтов, которые часто повторяются. Вместо того чтобы хранить каждый байт, фиксируется количество повторяющихся символов и их позиция. Для наглядности приведем следующий пример.
Упаковываемый файл занимает 15 байт и состоит из следующей последовательности символов:
BBBBBLLLLLAAAAA
В шестнадцатиричной системе
42 42 42 42 42 4С 4С 4С 4С 4С 41 41 41 41 41
Архиватор может представить этот файл в виде (шестнадцатиричном):
01 05 42 06 05 4С OA 05 41
Эти последовательности можно интерпретировать следующим образом: с первой позиции 5 раз повторяется знак В, с шестой позиции 5 раз повторяется знак L и с позиции 11 повторяется 5 раз знак А.
Согласитесь, очень простая демонстрация алгоритма архивации. Очевидно, что для хранения файла в его последней форме требуется лишь 9 байт — меньше на 6 байт.
Описанный метод является простым и очень эффективным способом сжатия файлов. Однако он не обеспечивает большой экономии объема, если обрабатываемый текст содержит небольшое количество последовательностей повторяющихся символов. Более изощренный метод сжатия данных, используемый в том или ином виде практически любым архиватором, — это так называемый оптимальный префиксный код, и в частности, алгоритм Хаффмана, или кодирование символами переменной длины. Код переменной длины
