标题:请教各位一个截取字符的问题
只看楼主
nocooldown
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-3-7
结帖率:0
已结贴  问题点数:20 回复次数:26 
请教各位一个截取字符的问题
小弟菜鸟一枚,请各位高人不吝赐教,非常感谢!!

现有一数据库,只有一字段,格式大致如下:

Democratic Progressive Party 民进党
problems facing agriculture, rural areas and farmers 农业、农村和农民问题
six categories of small projects for rural areas (water-efficient irrigation, potable water supplies, roads, methane production facilities, hydroelectric plants and pasture enclosure)农村"六小工程"
relief subsidies扶贫基金

现在想把中文和英文分别截取开来放到另外两个字段里。
我的思路是做循环,逐个判断是否非全角(ASC<128),直到有汉字停止,根据返回的值来截取。但是如果前面的英语中有类似第三行这样的符号或者>128的全角符号就会造成提前停止循环,返回的值不正确(偏小)。请问如何避免?另外我觉得我这个办法好笨,是否有更好的办法或强力的函数可用?
搜索更多相关主题的帖子: facilities supplies problems farmers plants 
2014-03-07 17:39
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:4 
测试一下全角字符的值  给他踢出去

DO IT YOURSELF !
2014-03-07 17:50
nocooldown
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-3-7
得分:0 
以下是引用wp231957在2014-3-7 17:50:37的发言:

测试一下全角字符的值  给他踢出去

就是说,还是建议用逐个字符判断的办法吗?
2014-03-07 17:53
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
也就逗号句号引号惊叹号啥的

后正我觉得没啥太好的办法

DO IT YOURSELF !
2014-03-07 17:57
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
要不然就从后往前扫描  扫到笫一个AscII字符分界

DO IT YOURSELF !
2014-03-07 17:58
nocooldown
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-3-7
得分:0 
以下是引用wp231957在2014-3-7 17:58:56的发言:

要不然就从后往前扫描  扫到笫一个AscII字符分界

呃,不行呢,比如第三行那样,中文里也夹有ASCII字符的,很可恶。。。
2014-03-07 18:01
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
得分:4 
先把文本放到一个文件中,例如:j:\test.txt中,然后用将字符取出到m_str字符串中:
m_str=FILETOSTR("j:\test.txt")
?CHRTRAN(m_str,",()'  'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyx","")
?CHRTRAN(m_str,CHRTRAN(m_str,",()'  'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyx",""),"")

相互学习,互相交流,共同提高。
2014-03-07 18:04
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
那你咋界定呢??
要不你就先处理原始数据  让它有规律一些

DO IT YOURSELF !
2014-03-07 18:04
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
得分:0 
分别置换到字段中就是了。

相互学习,互相交流,共同提高。
2014-03-07 18:05
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
要不然就从后往前扫描  扫到笫一个AscII字符分界

DO IT YOURSELF !
2014-03-07 18:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-428171-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.099419 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved