Распаковка базы Database(lmp).res
#11
Выдался у меня свободный вечер, написал парсер Леверов. Smile Ловите прилепленный файл.

ELF Написал:[*] - самый каверзный параметр. Расчитывается так:
Считываем аж 4 байта!!!  :o  Если второй байт больше 0, третий байт не равен 2, а четвёртый байт равен 0, то размер длины строки long, иначе размер длины строки byte.
Что-то гемор какой-то. Можно намного проще. Считать один байт. Проверить, четное ли число в нем записано или нечетное. Если четное, делим на два и работаем дальше. Если нечетное, возвращаемся на байт назад и считываем уже 4 байта. вычитаем из них 1-цу и делим опять на два, работаем опять дальше.
Элементарная проверка первого байта на четность намного легче предложенного тобой варианта.
Кстати такой же алгоритм подходит и для всех других "длин" в файле. Т.е. должен использоваться и при подсчете размеров блоков, подблоков, строк таблицы и ячеек таблицы.


Файлы вложений
.rar   lparser.rar (Размер: 22.39 KB / Загрузок: 616)
Duty is everything, the greatest of joys, the deepest of sorrows.
Ответ


Сообщения в этой теме
Распаковка базы Database(lmp).res - от ALtair - 09.06.2004, 02:10
Распаковка базы Database(lmp).res - от Guest - 16.02.2012, 14:39
Распаковка базы Database(lmp).res - от Guest - 07.03.2012, 18:50
Распаковка базы Database(lmp).res - от Guest - 16.03.2012, 19:02

Перейти к форуму:


Пользователи, просматривающие эту тему: 6 Гость(ей)