[求助]如何将TEXT文字拆分成单字(ARX方法)?
本帖最后由 作者 于 2006-4-16 23:58:15 编辑 <br /><br /> <FONT face=宋体 size=2>如何将TEXT文字拆分成单字(ARX方法)?我通过acdbEntMake函数编写了一个程序,可运行到strcpy(la->resval.rstring,temp)时CAD死了!不知为何?<BR><BR>我的代码如下:<BR>//====拆分文字=======================================================<BR>void exptxt(ads_name text)<BR>{<BR>struct resbuf *la,*ed,*ep;<BR>ads_real texthz,textwz,textrz;<BR>char temp,*txtstr=" ";<BR>ads_point pick;<BR>int i,len,count=0;<BR><BR>ed=acdbEntGet(text); //取得实体参数集<BR>ep=ed;<BR><BR>la=entitem(ed,40);<BR>texthz=la->resval.rreal;<BR><BR>la=entitem(ed,41);<BR>textwz=la->resval.rreal;<BR><BR>la=entitem(ed,50);<BR>textrz=la->resval.rreal;<BR><BR>la=entitem(ed,10);<BR>pick=la->resval.rpoint;<BR>pick=la->resval.rpoint;<BR><BR>la=entitem(ed,1);<BR>strcpy(txtstr,la->resval.rstring);<BR><BR>acdbEntDel(text);<BR><BR>len=strlen(txtstr);<BR>count=0;<BR>for(i=0;i<LEN;I++)<BR /> {<BR>temp=txtstr;<BR>if(isascii(temp)==0) <BR>{<BR>temp=txtstr;<BR>temp='\0';<BR>temp='\0';<BR>i++;<BR>}<BR>else <BR>{<BR>temp=txtstr;<BR>if (temp=='%' && temp=='%')<BR>{<BR>temp=txtstr[++count];<BR>temp='\0';<BR>count++;<BR>i=i+2;<BR>}<BR>else<BR>{<BR>temp='\0';<BR>temp='\0';<BR>temp='\0';<BR>}<BR>}<BR>la=entitem(ep,1);<BR><FONT color=#ff0000><EM>strcpy(la->resval.rstring,temp);//运行至此死机<BR></EM></FONT><BR>la=entitem(ep,10);<BR>la->resval.rpoint=pick;<BR>la->resval.rpoint=pick;<BR>la->rbnext=NULL;<BR>acdbEntMake(ep); //更新实体参数集<BR>pick=pick+1.0*texthz*textwz*cos(textrz);<BR>pick=pick+1.0*texthz*textwz*sin(textrz);<BR>}<BR>acutRelRb(ed);<BR>}<BR>//===================================================================</FONT> 呵......,解决问题了。 <P>问题不是出在那句上,关键是没有给textstr分配空间,将其定义字符数组,就可以了.</P><P> </P> 你们这代码要怎么样应用在CAD里啊? 字符数组处理
页:
[1]