1

.NETでAutoCADのDWGファイル用の簡単なリーダーを作成しようとしています。実際にファイル内のすべてのデータにアクセスする必要はないので、ファイル形式全体のリーダー/ライターの作成に伴う複雑さは問題になりません。

バージョン、すべてのヘッダーデータ、セクションロケーターレコードなどの基本を読み取ることができましたが、実際のセクションの読み取りに問題があります。

この問題は、フォーマットがいくつかのデータ型を格納するカスタムメソッドを使用しているという事実に起因しているようです。私はここで仕様に従っています:

http://www.opendesign.com/files/guestdownloads/OpenDesign_Specification_for_.dwg_files.pdf

具体的には、個々のビットの読み込みに依存するタイプは、私が読み取るのに苦労しているタイプです。問題の大部分は、C#のBinaryReaderでは一度に全バイト単位でしか読み取れないことです。実際、一度に8ビットや倍数ではなく、個々のビットで読み取る機能が必要だと思います。

仕様とその解釈方法を誤解している可能性がありますが、ストリームから個々のビットを読み取る方法、または上記の仕様の変数タイプの一部を読み取る方法を誰かが明確にできれば、単にフルバイトを読み取るよりも複雑なビット操作が必要な場合は、それが優れています。

私はこれのためにそこに商業図書館があることを知っています、しかしそれらのすべての価格は単に手元の仕事のために正当化するには高すぎます。

どんな助けでも大歓迎です。

4

2 に答える 2

2

BitArrayクラスをいつでも使用して、ビット単位の操作を行うことができます。したがって、ファイルからバイトを読み取り、それらを BitArray にロードしてから、個々のビットにアクセスします。

于 2010-08-24T12:07:49.360 に答える