![]() |
【转帖】获取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 编辑 ] |
所有的时间均为北京时间。 现在的时间是 02:36 PM. |