Per un progetto, devo lavorare con vari tipi di file da alcuni vecchi giochi e software correlati: file di configurazione, salvataggi, archivi di risorse e così via. La maggior parte di questi non è ancora documentata, né esistono strumenti per lavorare con loro, quindi devo decodificare i formati e costruire le mie librerie per gestirli.
Anche se non credo che ci sia una grande richiesta per gran parte, intendo pubblicare i risultati dei miei sforzi. Esistono standard accettati per la documentazione dei formati di file? Guardandosi intorno, ci sono diversi stili in uso: alcuni, come la specifica del formato di file .ZIP , sono molto prolissi; altri, come quelli su XentaxWiki, sono molto più concisi: trovo alcuni di essi difficili da leggere; quella che mi piace di più personalmente è questa descrizione del file system della scheda di memoria di PlayStation 2 , che include sia un testo descrittivo dettagliato che diverse "mappe di memoria" con offset e simili - inoltre si adatta molto al mio caso d'uso. Varia un po 'per i diversi formati, ma sembra che ci dovrebbero essere alcuni principi generali che dovrei provare a seguire.
Modifica: mi sembra di non aver spiegato molto bene cosa voglio fare. Lasciami costruire un esempio.
Potrei avere un vecchio software che memorizza la sua configurazione in un file 'binario' - una serie di bitfield, numeri interi, stringhe e quant'altro incollato insieme e compreso dal programma, ma non leggibile dall'uomo. Decifro questo. Vorrei documentare esattamente qual è il formato di questo file, in modo leggibile dall'uomo, come specifica per l'implementazione di una libreria per analizzare e modificare questo file. Inoltre, vorrei che questo fosse facilmente comprensibile da altre persone.
Esistono diversi modi per scrivere un documento del genere. L'esempio di PKZIP sopra è molto prolisso e descrive principalmente il formato del file in testo libero. L'esempio PS2 fornisce tabelle di tipi di valore, offset e dimensioni, con ampi commenti su cosa significano tutti. Molti altri, come quelli su XentaxWiki, elencano solo i tipi e le dimensioni delle variabili, con commenti piccoli o nulli.
Chiedo se esiste uno standard, simile a una guida di stile di codifica, che fornisce una guida su come scrivere questo tipo di documentazione. In caso contrario, c'è qualche esempio eccellente ben noto che dovrei emulare? In caso contrario, qualcuno può almeno riassumere qualche consiglio utile?
struct
. Ha funzionato abbastanza bene.