dxf文件结构的问题(浮点数怎样存储在文件中)
1004
01006800000000000000000000002D4E715CD89A1F906C51EF8D00000B5753900000000000002001EE40480030003300000000000000000000002D4E715CD89A1F906C51EF8D0000310000002D4EE258025E000066666666C0B010416666666620731041333333338C184541CDCCCCCC7C114541
读取dxf文件的二进制数据(如上)
解析出来如下字段值
6800 表示 h
2D4E715CD89A1F906C51EF8D 表示 中山高速公路
0B575390 表示 国道
......
这些都是Char类型的
但是在AutoCAD Map里有字段是Real类型的
在这个字串里怎么解析呢?
就是说
0000 0000 2001怎么能解析出来是61449( EE40这个我不知道需要不需要)
6666 6666 C0B0 (1041)怎么能解析出来是273456.1
6666 6666 2073 (1041)怎么能解析出来是269512.1
3333 3333 8C18 (4541)怎么能解析出来是2765080.4
CDCC CCCC 7C11 (4541)怎么能解析出来是2761465.6
问题点数:0、回复次数:13Top
1 楼fengqinggao(风清高)回复于 2003-11-02 19:42:50 得分 0
DXF文件就是TXT文件啊,可以直接读取,为什么要读成二进制文件?有特殊用途么?呵呵,顺便问问Top
2 楼AlanL(情俩牵)回复于 2003-11-02 19:48:34 得分 0
对啊,DXF文件是文本文件啊,是可以直接读取的,1004
01006800000000000000000000002D4E715CD89A1F906C51EF8D00000B5753900000000000002001EE40480030003300000000000000000000002D4E715CD89A1F906C51EF8D0000310000002D4EE258025E000066666666C0B010416666666620731041333333338C184541CDCCCCCC7C114541
这是在dxf文件中出现的字符串啊,我读到CString的变量里了啊
然后我要对这个串进行解析啊
我已经解析出来汉字(unicode码)但是我不知道浮点数的存储是怎么回事
Top
3 楼fengqinggao(风清高)回复于 2003-11-02 20:51:34 得分 0
你这个不是CAD生成的DXF文件吧?如果是CAD生成的,那些数据都是单独的,而且是十进制的。你这可能需要找生成DXF文件的那个软件的接口才行,否则出不来Top
4 楼dzqsuper(数风流人物-还看打倒日本猪的人(抵制日货))回复于 2003-11-02 20:52:17 得分 0
这是什么玩意吗
友情的帮你顶一下Top
5 楼AlanL(情俩牵)回复于 2003-11-02 21:53:25 得分 0
fengqinggao:
是cad生成的,R14的dxf文件,其他的我都出来了,就差浮点数了Top
6 楼fengqinggao(风清高)回复于 2003-11-02 22:48:54 得分 0
^_^,那些原文件中的文字和数字似乎没有任何联系规则啊,看来得翻一些资料才行,帮不了你了,不好意思,:(Top
7 楼fingerfox(狐狸【人不要脸,天下无敌】)回复于 2003-11-02 23:04:16 得分 0
文件格式是公开的啊。Top
8 楼fingerfox(狐狸【人不要脸,天下无敌】)回复于 2003-11-02 23:05:21 得分 0
会不会是 大数 问题。Top
9 楼0sch(!)回复于 2003-11-03 08:41:45 得分 0
为什么要用这种方式读取DXF文件,用CArchive读取非常方便,直接读取数据(包含双精度)就行了的,如下!
CFile mFile;
if(mFile.Open("d:\\dd\\try.DXF",CFile::modeRead)==0)
return;
CArchive ar(&mFile,CArchive::load);
ar>>与DXF对应的变量;
ar.Close();
mFile.Close();Top
10 楼mfc168(子非鱼)回复于 2003-11-03 08:46:52 得分 0
DXF文件格式及读取程序代码:
http://sanjianxia.myrice.com/vc/120.htmTop
11 楼AlanL(情俩牵)回复于 2003-11-03 09:42:54 得分 0
0sch(天哪) :
不懂你的意思,我从dxf读出来的是一个串,这个串,包括了所有的字段值,就象是数据库的一条记录一样Top
12 楼fengqinggao(风清高)回复于 2003-11-03 10:05:35 得分 0
我以前用过DXF文件,其格式可和你的差远了,我见到的都是 mfc168(闶阆) 所提供的链接里的格式,我觉得你的格式真的很奇怪,呵呵,你用Notepad打开它的时候就是你三楼所说的文字?还是你读出来是这样的文字?————这非常重要,如果用Notepad打开时就是这样的,就比较麻烦了;如果用Notepad打开是正常的文字和十进制数据,那就比较简单了,是读书据的问题,用 0sch(天哪) 的方法读或者直接读都行Top
13 楼AlanL(情俩牵)回复于 2003-11-03 10:10:02 得分 0
感谢各位,问题我自己解决了,我的dxf的确是AUTOCAD Map 的R14的dxf,我的目的是自己解析dxf文件,不要任何其他支持,空间数据我早搞定了,现在才的是OJECTS SESSION的段的属性值了,今天我突然明白了,谢谢各位,我揭帖了
有事情联系我
QQ 16976440
MSN alan_lus@hotmail.comTop




