求自定义函数(或其它方法)

zhangdengyi 2010-11-29 09:52:54
去除字符串中的汉字。
例:
th="R-光纤输出头HK$TXφ1.79μFW×(黑)"

返回结果:
R-HK$TXφ1.79μFW×()


...全文
82 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
十豆三 2010-11-30
  • 打赏
  • 举报
回复
1、将全角转成半角。
2、再用IsLeadByte或ASC大于122来判断是否是汉字。并把汉字去掉,得到非汉字。
3、再将字符串中的非汉字去掉。
xuzuning 2010-11-29
  • 打赏
  • 举报
回复
Str=""
th="R-光纤输出头HK$TXφ1.79μFW×(黑)"

For i=1 To Len(th)
If Not IsLeadByte(Substr(th,i,1))
Str=Str+Substr(th,i,1)
else
ch = asc(Substr(th,i,1))
if ch >= 160 and ch < 176
str = str + substr(th, i, 2)
i = i + 1
endif
Endif
Endfor
? Str
wwwwb 2010-11-29
  • 打赏
  • 举报
回复
cstr="R-光纤输出头HK$TXφ1.79μFW×(黑)"
cstr=STRCONV(cstr,2)
Z1=''
For i=1 To Lenc(cstr)
If IsLeadByte(Substrc(cstr,i,1)) &&判断是否汉字

Z1=Z1+Substrc(cstr,i,1)

Endif
ENDFOR
?Z1
?CHRTRAN(CSTR,Z1,'')
全角符号去掉了
我是小数位 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wwwwb 的回复:]
建议先将如×、()、φ等我可以转换成半角,再用IsLeadByte判断、替换
[/Quote]Clear
Str=""
th="R-光???出?HK$TXφ1.79μFW×(黑)"
For i=1 To Len(th)
If Not IsLeadByte(Substr(th,i,1))
Str=Str+Substr(th,i,1)
Endif
Endfor
? Str
如果全角字符也包含的話,則自己再把所有的字符加進去再判斷一次
wwwwb 2010-11-29
  • 打赏
  • 举报
回复
建议先将如×、()、φ等我可以转换成半角,再用IsLeadByte判断、替换
zhangdengyi 2010-11-29
  • 打赏
  • 举报
回复
目的是去掉汉字。(不过常见的几个如×、()、φ等我可以转换成半角,如果能在函数中实现当然就更完美了)
wwwwb 2010-11-29
  • 打赏
  • 举报
回复
全角符号也算?

2,727

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧