| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4056 人关注过本帖
标题:VFP编程技巧擂台赛[一]
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用bccn201203在2012-9-23 13:56:59的发言:

cstr=" how often[]多久一 exercise['eks2saiz]v.&n.锻炼;运 skateboard[]v.踩滑板;参加滑板运 hardly['ha:dli]adv. 几乎不;几乎没ever['ev2]adv. 曾;曾 shop[60p]v.购 once[w3ns]adv. 一次"

此洞洞有物进? 这个规律很强悍啊

[ 本帖最后由 有容就大 于 2012-9-23 14:00 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-09-23 13:59
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
以下是引用有容就大在2012-9-23 13:59:55的发言:


此洞洞有物进? 这个规律很强悍啊
版面有问题,加色后,字 变了,伤脑筋。
cstr=" how often[]多久一 exercise['eks2saiz]v.&n.锻炼;运 skateboard[]v.踩滑板;参加滑板运 hardly['ha:dli]adv. 几乎不;几乎没 ever['ev2]adv. 曾;曾 shop[60p]v.购 once[w3ns]adv. 一次"
这个为什么没变。
2012-09-23 14:07
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 

笑喷了 是啊 怎么引用都会变呢?

梅尚程荀
马谭杨奚







                                                       
2012-09-23 14:09
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
cstr=" how often[]多久一次 exercise['eks2saiz]v.&n.锻炼;运动 skateboard[]v.踩滑板;参加滑板运动 hardly['ha:dli]adv. 几乎不;几乎没有 ever['ev2]adv. 曾;曾经 shop[60p]v.购物 once[w3ns]adv. 一次"


[ 本帖最后由 bccn201203 于 2012-9-23 14:11 编辑 ]
2012-09-23 14:10
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
以下是引用有容就大在2012-9-23 14:09:07的发言:


笑喷了 是啊 怎么引用都会变呢?
准备好PP
2012-09-23 14:11
chinagrass
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-5-2
收藏
得分:0 
向高手们学习了!
2012-09-25 11:08
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
刚看到这个帖子,有意思。现在下班,占个位,回家晚饭后奉上代码。

程序长了点,将就着看吧,但程序的脉络应该还是很清晰的,呵呵。

程序代码:
**********************************************************
*  找出三个字段之间规律的算法:                          *
*  第一个字段,以“[”为界,用LEFT()函数取该界的左侧全部 *
*      当然,从第二条记录开始,该字段的左侧开始部位的取值*
*      应该以上一条记录的最后一个中文字为准;            *
*  第二个字段,很好分界,从“[”开始,到最近的第一个中文 *
*      字前面一个字符结束;                              *
*  第三个字段,从最近的第一个中文字开始,到最近的最后一个*
*      中文字结束。                                      *
**********************************************************
CLOSE ALL
SET DEFAULT TO E:\RR\Foxpro\
SET SAFETY OFF

Cstr=" how often[]多久一次 exercise['eks2saiz]v.&n.锻炼;运动 skateboard[]v.踩滑板;参加滑板运动 hardly['ha:dli]adv. 几乎不;几乎没有 ever['ev2]adv. 曾;曾经 shop[60p]v.购物 once[w3ns]adv. 一次"

IF !FILE("拆分字符串.DBF")
   CREATE TABLE 拆分字符串.DBF FREE ;
      (单词 C(15), 音标 C(20), 汉意 C(30))
ELSE
   USE 拆分字符串.DBF
   ZAP
ENDIF

STORE 1 TO 左边界, 右边界, 左中括号次数, 右中括号次数
字符串长度=LEN(Cstr)
右中括号个数=OCCURS("]",Cstr)
DO WHILE 右边界<字符串长度
   *********************
   *  取第一个字段内容  *
   *********************
   STORE "" TO 单词内容,音标内容,汉意内容
   左中括号位置=AT("[",Cstr,左中括号次数)
   右边界=左中括号位置-1
   FOR I=左边界 TO 右边界
      单词内容=单词内容+SUBSTR(Cstr,I,1)
   NEXT
   单词内容=LTRIM(单词内容)
  

   *********************
   *  取第二个字段内容  *
   *********************
   左边界=左中括号位置
   右中括号位置=AT("]",Cstr,右中括号次数)
   FOR J=右中括号位置+1 TO 字符串长度   &&查找汉字位置
      IF ASC(SUBSTR(Cstr,J,1))>128
         右边界=J-1  &&第一个汉字的左边一位就是“音标”字段的结束
         EXIT
      ENDIF
   NEXT
   FOR I=左边界 TO 右边界
      音标内容=音标内容+SUBSTR(Cstr,I,1)
   NEXT
   音标内容=LTRIM(音标内容)
  

   *********************
   *  取第三个字段内容  *
   *********************
   左边界=右边界+1
   FOR J=左边界 TO 字符串长度   &&查找汉字位置
      IF ASC(SUBSTR(Cstr,J,1))<129
         右边界=J-1  &&第一个非汉字的左边一位就是“汉意”字段的结束
         EXIT
      ELSE
         IF 右中括号次数=右中括号个数 AND J=字符串长度
            右边界=J
         ENDIF
      ENDIF
   NEXT
   FOR I=左边界 TO 右边界
      汉意内容=汉意内容+SUBSTR(Cstr,I,1)
   NEXT
   汉意内容=LTRIM(汉意内容)
  

   *******************
   *  插入各字段内容  *
   *******************
   INSERT INTO 拆分字符串.DBF VALUES (单词内容,音标内容,汉意内容)
  

   ***************
   *  重置各位置  *
   ***************
   左边界=右边界+1
   左中括号次数=左中括号次数+1
   右中括号次数=右中括号次数+1
ENDDO

CLOSE ALL
SET SAFETY OFF
RETURN

程序运行的结果也符合要求,并完美地消除了字符串中的前导空格:

图片附件: 游客没有浏览图片的权限,请 登录注册



[ 本帖最后由 taifu945 于 2012-9-25 21:52 编辑 ]
2012-09-25 17:06
taohua300
Rank: 12Rank: 12Rank: 12
来 自:光
等 级:贵宾
威 望:14
帖 子:1636
专家分:3906
注 册:2009-3-11
收藏
得分:0 
回复 27楼 taifu945
习惯了看英文变量,猛一看汉字变量真不习惯
将字符串的内容修改一下,看看结果还对么
Cstr=" how often[]肻多久一次 exercise['eks2saiz]v.&n.锻炼;运动 skateboard[]v.踩滑板;参加滑板运动 hardly['ha:dli]adv. 几乎不;几乎没有 ever['ev2]adv. 曾;曾经 shop[60p]v.购物 once[w3ns]adv. 一次"

肻 kěn

唐长老 也存在同样问题貌似

个性太多,无法显示
2012-09-26 10:31
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用taohua300在2012-9-26 10:31:21的发言:

习惯了看英文变量,猛一看汉字变量真不习惯
将字符串的内容修改一下,看看结果还对么Cstr=" how often[]肻多久一次 exercise['eks2saiz]v.&n.锻炼;运动 skateboard[]v.踩滑板;参加滑板运动 hardly['ha:dli]adv. 几乎不;几乎没有 ever['ev2]adv. 曾;曾经 shop[60p]v.购物 once[w3ns]adv. 一次"
肻 kěn

唐长老 也存在同样问题貌似
相互交流,才能相互提高。关键是思路。

坚守VFP最后的阵地
2012-09-26 10:40
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 28楼 taohua300
什么问题 ? 没察觉到啊。

梅尚程荀
马谭杨奚







                                                       
2012-09-26 11:06
快速回复:VFP编程技巧擂台赛[一]
数据加载中...
 
   



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

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