ANSI C でコマンド ライン プログラムを作成して、Quake 2 マップ ファイルを解析し、使用されているエンティティとテクスチャの数を報告しています。私の開発マシンは MacBook です。OS X Snow Leopard (32 ビット)、Windows XP (32 ビット) と Vista (64 ビット)、および Ubuntu 9.10 (32 ビット) でテストしています。
Vista でクラッシュしたバグがあり、プログラムが特定のマップ ファイルでハングしました。それがプログラムではなく、マップ ファイル自体であることがわかるまでにしばらく時間がかかりました。テキスト ファイルに異常はありませんでした。マップ ファイルを再度開いて保存すると、その問題が修正されました。
私のコードは、マップ ファイル全体をメモリに読み込み、strtok() を使用して「\n」を使用して行を区切り、各行を解析して、処理のためにデータを単一リンク リストに読み込みます。マップ (テキスト) ファイルが破損しているかどうかを検出する方法はありますか?
プログラミング以外の最も簡単な解決策は、問題と解決策を記載した FAQ ファイルを追加することです。