几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(C++)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


 
 
主题工具 搜索本主题 显示模式
旧 2009-04-18, 07:09 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】获取acdbmtext对象中的有效字符

获取acdbmtext对象中的有效字符
获取acdbmtext对象中的有效字符
帮帮忙:
要想在程序中快速获取acdbmtext对象中的有效字符,去掉其中的控制字符,如何编程实现呢?
非要一个一个地搜索“\f”、“;”之类的控制字符标志地过滤吗?
objectarxsdk中有没有专用的函数或方法呢?
有好的方法请介绍一下!
[ 本帖最后由 hi_tek 于 8-9-8 02:24 pm 编辑 ]
花了一个下午,试着编了一个mtext控制字符的过滤代码,请高手精简一下:
cstring effmtext(char* content)
{
int i = 0, j;
cstring con = _t(content);
while((i=con.find('\\',i))!=-1)
{
char ch;
ch = con.getat(i+1);
ch = ch>='a' && ch!='l' && ch!='o' && ch<='z' ? ch-32 : ch;
switch (ch)
{
case 'a':
case 'c':
case 'f':
case 'h':
case '~':
case 'q':
case 't':
j=con.find(';',i);
con=con.left(i)+con.mid(j+1);
break;
case 'l':
case 'l':
case 'o':
case 'o':
case 'p':
con.delete(i,2);
break;
case 's':
con.delete(i,2);
con.delete(con.find(';',i));
break;
default:
i++;
}
}
i=0;
while ((i=con.find('{',i))!=-1)
{
if (con.getat(i-1)!='\\')
con.delete(i);
else
con.delete(i-1);
}
i=0;
while ((i=con.find('}',i))!=-1)
{
if (con.getat(i-1)!='\\')
con.delete(i);
else
con.delete(i-1);
}
if (con.find("\\u+00b0")!=-1)
{
con.replace("\\u+00b0","%%d");
}
if (con.find("\\u+00b1")!=-1)
{
con.replace("\\u+00b1","%%p");
}
if (con.find("\\u+2205")!=-1)
{
con.replace("\\u+2205","%%c");
}
return con;
}
复制代码
[ 本帖最后由 hi_tek 于 8-9-9 11:26 am 编辑 ]
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 05:01 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多