У меня есть различные двоичные форматы файлов, которые мне нужно записать в какой-то текстовый формат, отредактировать и затем перекомпилировать (возможно, в несколько иную версию двоичного формата). Конечно, я мог бы написать кучу служебного кода на C / C ++ для такого рода вещей, и, возможно, использовать библиотеку для текстовой стороны вещей (XML или JSON или что-то еще), но это шаблон задачи, который постоянно появляется в моей работе, и мне кажется, что, вероятно, должен существовать какой-то инструмент общего назначения для такой работы.
Очевидно, что должен быть какой-то способ описания двоичных форматов файлов - схема или что-то подобное - это должно поддерживать все очевидные типы данных (строки, целые числа различных размеров, bools и т. Д., Было бы неплохо с плавающей точкой) тоже), и такие вещи, как поля подсчета, поля длины, отступы / выравнивание и т. д., чтобы обрабатывать все типичные вещи, которые вы найдете в файле данных. Также было бы полезно иметь поддержку порядка байтов, поскольку двоичный файл может иметь порядок байтов, отличный от платформы, на которой мы работаем.
Я был бы очень удивлен, если что-то подобное уже не существует, но мне пока не повезло через Google (как вы можете описать такую утилиту или библиотеку кратко?). Самой близкой вещью, которую я когда-либо помню, были утилиты компилятора / декомпилятора ресурсов Apple во времена «Классической» Mac OS. В них использовался C-подобный синтаксис с определениями шаблонов ресурсов в заголовочных файлах для описания форматов различных двоичных ресурсов, и вы могли компилировать / декомпилировать между этим C-подобным исходным синтаксисом и двоичными ресурсами.