对于一个项目,我需要使用一些旧游戏和相关软件中的各种文件类型-配置文件,保存,资源档案等。这些文件的大部分尚未记录,也没有与之配合使用的工具,因此我必须对这些格式进行反向工程并构建自己的库来处理它们。
尽管我认为大多数需求不大,但我打算发表自己的努力成果。是否有记录文件格式的公认标准?环顾四周,有几种正在使用的样式:有些样式(如.ZIP文件格式规范)非常罗;;有些样式则非常冗长。其他的,例如XentaxWiki上的,则更为简洁-我发现其中一些难以阅读;我个人最喜欢的是对PlayStation 2存储卡文件系统的描述,其中包括详细的描述性文字和一些带偏移量的“内存映射”等,它也与我的用例最匹配。对于不同的格式,它会有所不同,但是似乎应该有一些我应该遵循的一般原则。
编辑:我似乎没有很好地解释我想做什么。让我构造一个例子。
我可能有一些旧软件,将其配置存储在一个“二进制”文件中-一系列位域,整数,字符串以及所有这些东西被粘在一起并被程序理解,但不是人类可读的。我破译了。我希望以一种人类可读的方式准确记录该文件的格式,作为实现库以解析和修改此文件的规范。此外,我希望其他人可以轻松理解这一点。
可以使用多种方法来编写此类文档。上面的PKZIP示例非常冗长,主要以自由文本形式描述文件格式。PS2示例提供了值类型,偏移量和大小的表,并对它们的含义进行了广泛注释。许多其他变量(例如XentaxWiki上的变量)仅列出变量类型和大小,几乎没有注释。
我问是否有类似于编码样式指南的标准,该指南提供了有关如何编写此类文档的指南。如果没有,那么有没有我应该效仿的著名例子?如果不是,那么至少有人可以总结一些有用的建议吗?
struct
。效果很好。