我正在尝试用.NET编写一个简单的AutoCAD DWG文件阅读器。我实际上并不需要访问文件中的所有数据,因此编写整个文件格式的读取器/写入器所涉及的复杂性不是问题。
我已经设法阅读了基础知识,例如版本,所有标题数据,部分定位器记录,但是在阅读实际部分时遇到了问题。
问题似乎源于格式使用自定义方法存储某些数据类型的事实。我按照这里的规格进行操作:
http://www.opendesign.com/files/guestdownloads/OpenDesign_Specification_for_.dwg_files.pdf
具体来说,依赖于读入各个位的类型是我正在努力阅读的类型。问题的很大一部分似乎是C#的BinaryReader只允许你一次读取整个字节,实际上我相信我需要能够读取单个位而不是简单的8位或一次多个。
可能是因为我误解了规范以及如何解释它,但是如果有人能够澄清我如何从流中读取单个位,或者甚至如何读取某些变量类型中的
指出,上述规范需要更复杂的位操作,而不是简单地读取全部字节。我确实知道有这样的商业图书馆,但是所有这些图书的价格都太高,无法为手头的任务辩护。
任何帮助都非常感激。
答案 0 :(得分:1)
您始终可以使用BitArray类进行逐位操作。因此,您从文件中读取字节并将其加载到BitArray中,然后访问各个位。
答案 1 :(得分:0)
对于任何这些图书馆的价格,你绝对不能自己开发稳定的东西。到目前为止你花了多少时间?