Для проекту мені потрібно працювати з різними типами файлів деяких старих ігор та відповідного програмного забезпечення - файли конфігурації, збереження, архіви ресурсів тощо. Більшість з них ще не задокументовані, а також не існує інструментів для роботи з ними, тому я повинен інженерно розробити формати та створити власні бібліотеки для їх обробки.
Хоча я не думаю, що на більшу частину цього попиту є великий попит, я маю намір опублікувати результати своїх зусиль. Чи є прийняті стандарти документування форматів файлів? Оглянувшись, використовується декілька стилів: деякі, як-от специфікація формату файлу .ZIP , дуже виразні; інші, як, наприклад, на XentaxWiki, набагато більш стислі - мені деякі з них важко читати; той, який мені особисто найбільше подобається, - це опис файлової системи пам'яті PlayStation 2 , що включає в себе як детальний описовий текст, так і декілька «карт пам'яті» із зрушеннями і таке - воно також найбільш відповідає моєму використанню. Це буде трохи відрізнятися для різних форматів, але, схоже, повинні бути деякі загальні принципи, яких я повинен намагатися дотримуватися.
Редагувати: Я, здається, не дуже добре пояснив, що хочу зробити. Дозвольте побудувати приклад.
У мене може бути якийсь старий фрагмент програмного забезпечення, який зберігає його конфігурацію у «двійковому» файлі - це ряд біт-полів, цілих чисел, рядків і того, що все не склеєне і зрозуміле програмою, але не читабельне для людини. Я розшифровую це. Я хочу задокументувати, який саме формат цього файлу, легко читається як специфікацію для впровадження бібліотеки для розбору та зміни цього файлу. Крім того, я хотів би, щоб це легко зрозуміли інші люди.
Існує кілька способів написання такого документа. Наведений вище приклад PKZIP є дуже багатомовним і в основному описує формат файлу у вільному тексті. У прикладі PS2 наведено таблиці типів значень, компенсацій та розмірів із широкими коментарями до того, що вони означають. Багато інших, як, наприклад, на XentaxWiki, лише перелічують типи та розміри змінних, мало коментарів або взагалі не мають.
Я запитую, чи є якийсь стандартний, подібний до посібника зі стилю кодування, який дає вказівки щодо написання такого роду документації. Якщо ні, чи є відомий чудовий приклад, який я повинен наслідувати? Якщо ні, чи може хтось хоча б узагальнити якусь корисну пораду?
struct
. Це спрацювало досить добре.