Показать сообщение отдельно
Старый 10.01.2008, 21:11   #28
Fla
ПроЭктировщик
 
Регистрация: 22.12.2007
Сообщений: 107
Написано 15 полезных сообщений
(для 15 пользователей)
Ответ: Как я писал самопальный архиватор (тутор-рассказ)

Тоже писал когда свой архиватор. Принцип был примитивен до безобразия.

{код символа}
Т.к. таблица носки состоит из 128 основных символов и 128 дополнительных, то делаем так. Юзаем символ с кодом 0 как кодировочный. Собственно символы с кодами до 128 оставляем без изменения, а от {128-255} заключаем их между {0}, вычитая из кода каждого символа 128. Т.к. {128+0} это большое русское А(у нас=)) то при раскодировке все в лучшем случае неправильно раскодируется, то 'А' будем кодировать как {0}{0} (да, смайлик, я знаю).
Тогда строка "АБВГДЕЖЗЕИ" будет представлена как {0}{0} {0}коды букв - 128{0}
В чем же архивирование? У нас была 256-ричная система, а стала 128-ричная. Т.е. уменьшилась в 2 раза! Теперь мы все это побитово записываем в файл. При этом один символ у нас занимает не 8 позиций, а семь!
Ну а разархивировать это дело совсем просто.

*Кстати русские тексты, аски-арт(и вообще все, где преимущественно символы от {128} до {256} архивирует на ура=)
**Сейчас пороюсь и выложу сырцы
***Не нашел, оказывается я эту хрень на асме писал. Ну как на асме, на ++ со вставками.

Последний раз редактировалось Fla, 10.01.2008 в 21:23.
(Offline)
 
Ответить с цитированием