[求助]在arx中如何读出lisp写的扩展数据
<P>在arx中如何读出lisp写的扩展数据<BR>有一以前的系统是LISP写的<BR>在以前的系统中生成有如下的扩展数据,我现在的代码是ARX写的,要兼容以前的数据,就用读取这样扩展数据,在Arx中能不能读出这些数据,如何读出。或者有没有其他方法,只要能读出这些数据,让我在Arx代码中用就可以。<BR>我一直用arx开发,lisp基本不懂</P><P>(-3 ("控规:街坊" (1002 . "{") (1000 . "APA-01") (1000 . "居住") <BR>(1000 . "2000") (1000 . "0.00") (1000 . "25.6") (1000 . "4.1") (1000 . <BR>"12班小学1所,6班幼儿园2所,垃圾中转站1处") (1000 . "无") (1000 . <BR>"20060418-0.001") (1002 . "}")))</P>
<P>高手指教!</P> <P>搞规划的吧,你lisp不懂就会arx,比俺强多了,用AutoCAD MAP,直接转到RDB里,还编什么程啊</P> <P>我是用C语言写的程序.</P>
<P>struct resbuf *rb2,*rb1;</P>
<P>rb1=ads_buildlist(RTSTR,"APA-01",0);</P>
<P>rb2=ads_entgetx(ent,rb1);</P>
<P>assoc_dxf_str(rb1,1000,sTemp);</P>
<P>... ...</P>
<P>上边assoc-dxf_str函是检索数据链表的.详细如下</P>
<P> ------ 缓冲链表操作函数 5.链表检索(字符型) -------------- */<BR> int assoc_dxf_str(struct resbuf *rb,int dxf_code,char *result)<BR> {<BR> struct resbuf *rb1;<BR> if (dxf_type(dxf_code)!=RTSTR) return RTERROR;<BR> if (rb==NULL) return RTERROR;<BR> for (rb1=rb;rb1!=NULL;rb1=rb1->rbnext) <BR> { if (rb1->restype==dxf_code)<BR> { <BR> strcpy(result,rb1->resval.rstring);<BR> return RTNORM;<BR> }<BR> }<BR> return RTERROR;<BR> }</P>
<P>/***************************************************************************/</P>
<P> ------ 缓冲链表操作函数 1.节点类型 */<BR>int dxf_type(int dxf_code)<BR> {<BR> if (dxf_code>=1000) dxf_code=dxf_code-1000;<BR> if (dxf_code<0) return dxf_code;<BR> if (dxf_code>=0 && dxf_code<=9) return RTSTR;<BR> if (dxf_code>=10 && dxf_code<=19) return RTPOINT;<BR> if (dxf_code>=38 && dxf_code<=59) return RTREAL;<BR> if (dxf_code>=60 && dxf_code<=79) return RTSHORT;<BR> if (dxf_code>=210 && dxf_code<=239) return RT3DPOINT;<BR> return RTNONE;<BR> }</P>
<P> </P>
页:
[1]