Für ein Projekt muss ich mit verschiedenen Dateitypen aus einigen alten Spielen und verwandter Software arbeiten - Konfigurationsdateien, Speicherungen, Ressourcenarchive usw. Der Großteil davon ist noch nicht dokumentiert, und es gibt auch keine Tools, mit denen ich arbeiten kann. Daher muss ich die Formate zurückentwickeln und meine eigenen Bibliotheken erstellen, um sie zu verarbeiten.
Obwohl ich nicht annehme, dass das meiste davon stark nachgefragt wird, beabsichtige ich, die Ergebnisse meiner Bemühungen zu veröffentlichen. Gibt es akzeptierte Standards für die Dokumentation von Dateiformaten? Wenn Sie sich umschauen , werden verschiedene Stile verwendet: Einige, wie die .ZIP-Dateiformatspezifikation , sind sehr wortreich; andere, wie die auf XentaxWiki, sind viel knapper - ich finde einige schwer zu lesen; Das, was mir persönlich am besten gefällt, ist diese Beschreibung des PlayStation 2-Speicherkartendateisystems , die sowohl detaillierten Beschreibungstext als auch mehrere 'Speicherkarten' mit Offsets und dergleichen enthält - sie passt auch am besten zu meinem Anwendungsfall. Es wird für verschiedene Formate ein wenig variieren, aber es scheint, dass es einige allgemeine Prinzipien geben sollte, denen ich folgen sollte.
Edit: Ich habe anscheinend nicht sehr gut erklärt, was ich tun möchte. Lassen Sie mich ein Beispiel konstruieren.
Möglicherweise habe ich eine alte Software, die ihre Konfiguration in einer 'binären' Datei speichert - eine Reihe von Bitfeldern, Ganzzahlen, Zeichenfolgen und so weiter, die vom Programm zusammengeklebt und verstanden werden, aber nicht für Menschen lesbar sind. Ich entschlüssele das. Ich möchte genau das Format dieser Datei auf lesbare Weise als Spezifikation für die Implementierung einer Bibliothek zum Parsen und Ändern dieser Datei dokumentieren. Außerdem möchte ich, dass dies für andere leicht verständlich ist.
Es gibt verschiedene Möglichkeiten, wie ein solches Dokument geschrieben werden kann. Das obige PKZIP-Beispiel ist sehr wortreich und beschreibt das Dateiformat hauptsächlich im Freitext. Das PS2-Beispiel enthält Tabellen mit Werttypen, Offsets und Größen mit ausführlichen Kommentaren zu deren Bedeutung. Viele andere, wie die in XentaxWiki, listen nur die Variablentypen und -größen mit wenig oder keinem Kommentar auf.
Ich frage, ob es einen Standard gibt, der einem Coding Style Guide ähnelt und Anleitungen zum Schreiben dieser Art von Dokumentation enthält. Wenn nicht, gibt es ein bekanntes hervorragendes Beispiel, das ich emulieren sollte? Wenn nicht, kann jemand zumindest einige nützliche Ratschläge zusammenfassen?
quelle
struct
. Es hat ganz gut funktioniert.Antworten:
Eine Binärdatei ist nur eine Folge von Bits, die nach bestimmten Regeln in logischen Einheiten angeordnet sind . Diese Regeln werden normalerweise als Grammatik bezeichnet . Die Grammatik kann in vier Typen eingeteilt werden (die Chomsky-Hierarchie ). Für kontextfreie Grammatiken sollten Sie die erweiterte Backus-Naur-Form verwenden , auf die Matt Fenwick in seinem Kommentar hingewiesen hat. Die Interpretation (oder Semantik) der in der Datei gespeicherten Sequenz kann mündlich oder mit gut kommentierten Beispielprogrammen beschrieben werden, die die Informationen serialisieren und deserialisieren.
Um mehr über die Dokumentation von Binärdateiformaten zu erfahren, empfehlen wir Ihnen, sich über den ASN.1-Standard zu informieren .
quelle
Das ist seltsam, weil eine schnelle Suche nach Dateiformaten einen Wikipedia-Artikel (Liste der Dateiformate) hervorbrachte . Es enthält auch verschiedene Videospieldatenformate .
Es enthält auch eine große Auswahl an Videospiel-Speichermedienformaten .
Es gibt nirgendwo einen "offiziellen" Standard. Da die Dateiformate von einem Unternehmen erstellt werden, entscheidet das Unternehmen über das Format für die Dokumentation.
quelle