Какие инструменты вы используете при отладке сохранения/загрузки файлов собственного формата?

Каждый раз мучаюсь, когда приходится писать код сохранения/загрузки файлов собственного (бинарного) формата. Файлы могут иметь довольно сложную структуру, с указанием локальных и глобальных смещений, иногда со сжатием стандартными алгоритмами отдельных блоков внутри файла. После написания кода сохранения файла есть необходимость «протрассировать» само содержимое файла, что оно соответствует ожиданиям.


Может быть есть какой-то удобный инструмент и/или редактор, в котором я смог бы перемещаться в файле по смещениям (по глобальному смещению, а также локально (от текущего места), вперед и назад на заданное число байт). Также есть необходимость выдирать отдельные куски данных из середины файла в другой файл, просматривать файл как в чисто бинарном виде, так и, например, в виде списка 4-х байтных, 8-байтных значений или структур заранее описанного типа? Этакий очень навороченный, современный, мощный hex-редактор?


Need help!
  • Вопрос задан
  • 3360 просмотров
Решения вопроса 1
Killy
@Killy
Знаю один такой hex-редактор, где можно свои шаблоны структур создавать: 010 Editor (не бесплатный, правда).
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
А что вынуждает использовать сложные собственные бинарные форматы? Есть protobuf, обеспечивающий возможность кроссплатформенного чтения полученныз записей и возможность добавления новых полей без потери бинарной совместимости. Еще есть bson.
Или нужна сверхэффективность и возможность загрузить данные как есть в память, скастить указатель и пользоваться уже загруженным классом?
Ответ написан
@MikhailEdoshin
Может быть, просто тесты писать — написать развесистый пример со всеми возможными вариантами и тестовый код, чтобы посмотреть, как читается? Из инструментов на Питоне, например, есть такой construct, декларативный парсер для бинарных форматов, мне кажется, с ним тестировать должно быть удобно (хотя и с обычным struct можно легко написать специализированные тесты).

В целом же я присоединяюсь к предыдущему оратору — почему не использовать стандартный сериализатор?
Ответ написан
Killy
@Killy
Ещё один редактор с шаблонами форматов файлов. HexEdit. Бесплатный. (Есть и pro-версия, но я не нашёл, чем она отличается.)
Интерфейс — привет из 90х. Юзабилити оставляет желать лучшего. Но по крайней мере фич больше, чем в других бесплатных редакторах.
Есть подозрение, что работа с шаблонами очень бажная, но, возможно, я не во всём разобрался ещё.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы