Come documentare una specifica di formato di file [chiuso]

9

Per un progetto, ho bisogno di 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 stata documentata, né esistono strumenti per lavorare con loro, quindi devo decodificare i formati e creare le mie librerie per gestirli.

Anche se non credo che ci sia una grande richiesta per la maggior parte, ho intenzione di pubblicare i risultati dei miei sforzi. Esistono standard accettati per la documentazione dei formati di file? Guardandoti intorno, ci sono diversi stili in uso: alcuni, come la .ZIP File Format Specification , sono molto prolisso; altri, come quelli su XentaxWiki, sono molto più concisi - trovo che alcuni di essi sono difficili da leggere; quello che personalmente mi piace di più è questa descrizione del file system della scheda di memoria PlayStation 2 , che include sia il testo descrittivo dettagliato che varie "mappe della memoria" con offset e simili - anche il più fedelmente corrisponde 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: sembra che non abbia spiegato molto bene cosa voglio fare. Consentitemi di costruire un esempio.

Potrei avere qualche vecchio software che memorizza la sua configurazione in un file 'binario' - una serie di bitfield, interi, stringhe e quant'altro tutti incollati e compresi dal programma, ma non leggibili dall'uomo. Io decifro questo. Desidero documentare esattamente qual è il formato di questo file, in un modo leggibile dall'uomo, come una specifica per l'implementazione di una libreria per analizzare e modificare questo file. Inoltre, mi piacerebbe che fosse facilmente comprensibile da altre persone.

Ci sono diversi modi in cui un tale documento potrebbe essere scritto. L'esempio di PKZIP sopra è molto verboso 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 assenti.

Chiedo se esiste uno standard, simile a una guida allo stile di codifica, che fornisce indicazioni su come scrivere questo tipo di documentazione. In caso contrario, c'è qualche eccellente esempio noto che dovrei emulare? Se no, qualcuno può almeno riassumere qualche consiglio utile?

    
posta Sopoforic 05.04.2014 - 23:09
fonte

2 risposte

3

Un file binario è solo una sequenza di bit disposti in unità logiche in base a determinate regole . Queste regole sono solitamente chiamate grammatica . La grammatica può essere classificata in quattro tipi (la gerarchia di Chomsky ), e per grammatiche prive di contesto dovresti usare Extended Backus-Naur Form come sottolineato da Matt Fenwick nel suo commento. L'interpretazione (o semantica) della sequenza memorizzata nel file può essere descritta verbalmente o con programmi di esempio ben annotati che serializzano e deserializzano le informazioni.

Per saperne di più sulla documentazione dei formati di file binari, suggerisci di leggere su ad es. Standard ASN.1 .

    
risposta data 07.04.2014 - 01:03
fonte
2

È strano perché una rapida ricerca di formati di file ha portato un articolo di Wikipedia (Elenco dei formati di file) . Include anche diversi formati di video giochi .

List of common file formats of data for video games on systems that support filesystems, most commonly PC games.

Include anche una vasta selezione di formati di archiviazione di videogiochi .

List of the most common filename extensions used when a game's ROM image or storage medium is copied from an original ROM device to an external memory such as hard disk for back up purposes or for making the game playable with an emulator. In the case of cartridge-based software, if the platform specific extension is not used then filename extensions ".rom" or ".bin" are usually used to clarify that the file contains a copy of a content of a ROM. ROM, disk or tape images usually do not consist of a single file or ROM, rather an entire file or ROM structure contained within a single file on the backup medium.

Are there any accepted standards for documenting file formats?

Non esiste uno standard "ufficiale" ovunque. Poiché i formati dei file sono realizzati da un'azienda, la società decide il formato per la documentazione.

    
risposta data 06.04.2014 - 00:33
fonte

Leggi altre domande sui tag