明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2435|回复: 4

[求助]如何将TEXT文字拆分成单字(ARX方法)?

[复制链接]
发表于 2006-4-13 00:51:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2006-4-16 23:58:15 编辑

如何将TEXT文字拆分成单字(ARX方法)?我通过acdbEntMake函数编写了一个程序,可运行到strcpy(la->resval.rstring,temp)时CAD死了!不知为何?

我的代码如下:
//====拆分文字=======================================================
void exptxt(ads_name text)
{
struct resbuf *la,*ed,*ep;
ads_real texthz,textwz,textrz;
char temp[4],*txtstr=" ";
ads_point pick;
int i,len,count=0;

ed=acdbEntGet(text); //取得实体参数集
ep=ed;

la=entitem(ed,40);
texthz=la->resval.rreal;

la=entitem(ed,41);
textwz=la->resval.rreal;

la=entitem(ed,50);
textrz=la->resval.rreal;

la=entitem(ed,10);
pick[0]=la->resval.rpoint[0];
pick[1]=la->resval.rpoint[1];

la=entitem(ed,1);
strcpy(txtstr,la->resval.rstring);

acdbEntDel(text);

len=strlen(txtstr);
count=0;
for(i=0;i {
temp[0]=txtstr[count++];
if(isascii(temp[0])==0)
{
temp[1]=txtstr[count++];
temp[2]='\0';
temp[3]='\0';
i++;
}
else
{
temp[1]=txtstr[count];
if (temp[0]=='%' && temp[1]=='%')
{
temp[2]=txtstr[++count];
temp[3]='\0';
count++;
i=i+2;
}
else
{
temp[1]='\0';
temp[2]='\0';
temp[3]='\0';
}
}
la=entitem(ep,1);
strcpy(la->resval.rstring,temp);//运行至此死机

la=entitem(ep,10);
la->resval.rpoint[0]=pick[0];
la->resval.rpoint[1]=pick[1];
la->rbnext=NULL;
acdbEntMake(ep); //更新实体参数集
pick[0]=pick[0]+1.0*texthz*textwz*cos(textrz);
pick[1]=pick[1]+1.0*texthz*textwz*sin(textrz);
}
acutRelRb(ed);
}
//===================================================================
 楼主| 发表于 2006-4-27 07:59:00 | 显示全部楼层
呵......,解决问题了。
发表于 2006-5-16 20:29:00 | 显示全部楼层

问题不是出在那句上,关键是没有给textstr分配空间,将其定义字符数组,就可以了.

 

发表于 2012-11-17 10:32:09 | 显示全部楼层
你们这代码要怎么样应用在CAD里啊?
发表于 2012-11-18 09:36:29 | 显示全部楼层
字符数组处理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 10:10 , Processed in 0.143822 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表