3

いくつかの種類のテキスト形式にダンプし、編集してから再コンパイルする必要があるさまざまなバイナリ ファイル形式があります (バイナリ形式のわずかに異なるバージョンに)。もちろん、この種のことを行うために C/C++ で一連のユーティリティ コードを記述し、テキスト側 (XML や JSON など) のライブラリを活用することもできますが、これは頻繁に発生するタスク パターンです。私の仕事では、この種の仕事のためのある種の汎用ツールがおそらくすでに存在しているべきだと私には思えます。

明らかに、バイナリ ファイル形式を記述する何らかの方法 (スキーマなど) が必要です。これは、すべての明白なデータ型 (文字列、さまざまなサイズの int、bool など、float もいいでしょう) をサポートする必要があります。カウント フィールド、長さフィールド、パディング/アラインメントなど、データ ファイルにあるすべての典型的なものを処理します。バイナリ ファイルのエンディアンは、実行しているプラ​​ットフォームとは異なる可能性があるため、エンディアンのサポートがあると便利です。

このようなものがまだ存在しないとしたら、私は非常に驚くでしょうが、私はこれまでのところ Google 経由で運がありませんでした (そのようなユーティリティやライブラリをどのように簡潔に説明しますか?)。これに最も近いのは、「クラシック」Mac OS の時代にさかのぼる Apple のリソース コンパイラ/逆コンパイラ ユーティリティです。これらは C に似た構文を使用し、ヘッダー ファイルにリソース テンプレート定義を使用してさまざまなバイナリ リソースの形式を記述し、この C に似たソース構文とバイナリ リソースの間でコンパイル/逆コンパイルすることができました。

4

2 に答える 2

5

BinX、バイナリ XML 記述言語、および対応するライブラリは、目的に合っているようです。

Practical Common Lisp bookのChapter 24. Practical: Parsing Binary Filesも興味深いかもしれません。これは、 150 行の Lisp コードで (バイナリ) MP3 ファイルの ID3 タグを解析するためのライブラリを作成する方法を示しています。*

* 最近では、おそらく Lisp は使用しないでしょうが、 Clojureのような最新の関数型言語を使用します。例については、Clojure でのバイナリ データの読み取りを参照してください。

PS binary data libraryorbinary data file libraryは Google に適したキーワードです。

于 2010-01-27T14:16:46.760 に答える
2

Mac App Store の「SynalyzeIt」は一見の価値があるかもしれません...

于 2011-07-09T13:29:43.787 に答える