0

テキスト ファイルとして開始された DFM ファイルがあります。

数年後、新しいバージョンの 1 つで、Borland Developer Studio がバイナリ形式に変更しました。

さらに、ファイルが感染しました。

誰かが私に今何をすべきか説明できますか? バイナリ ファイル構造の読み取り方法はどこで確認できますか?

4

1 に答える 1

0

DFM ファイルがどうなるかはわかりましたが、その理由はわかりません。

テキスト ファイルからバイナリ ファイルへの変更の発生は既知であり、別の質問のスタック オーバーフローで見つけることができます。ファイルの感染についてのみ説明します。

DFM ファイルの元の言語である Pascal では、文字列によって次のように定義されます。最初のバイトは文字列の長さ (0 ~ 255) で、その他の文字は文字列です。(文字列の長さがヌル文字で認識される C とは異なります)。

誰か (おそらく BDS?) がファイルをテキスト ファイルからバイナリ ファイルに変更しているときに、長さ 13 (0D) のすべての文字列を長さ 10 (0A) に変更しました。このように、文字列は 10 文字で終了し、次の文字はプロパティの値でした。

バイナリ エディタをダウンロードし、長さ 10 のすべてのオカレンスを修正しました。ファイルは表示され、適切にコンパイルされました。

(プロパティの長さが感染しただけでなく、Icon.Data プロパティの 1 バイトが 0D から 0A に置き換えられました)

于 2013-01-02T08:04:32.373 に答える