| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2401 人关注过本帖
标题:菜鸟问题:关于replace
只看楼主 加入收藏
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:0 
还以上面的数据为例,再验证以下“带FOR条件,同时又带WHILE条件,则WHILE条件优先,默认范围是:REST”。

执行如下命令:
loca for dept='财务'
repl salary with salary+100 for salary<5000 while dept='财务'

执行以上命令后,仅将财务部门工资小于5000元的人员(马六的工资由4200修改为4300)工资加了100元,而记录指针停留在第 5 条记录上,范围仍然是 REST

泉城飞狐
2021-07-14 11:42
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
这样看看:
表 employee.dbf 记录如下:
==========================
name   dept   salary
- - - - - - - - - - - - -
张三   信息   4000
李四   信息   4500
王五   财务   6000
马六   财务   4200
闫七   设计   7000
刘八   设计   6800
刘九   财务   9413
==========================
执行如下命令:

loca for dept='财务'
repl salary with salary+100 while dept='财务'
或:
go 2
repl salary with salary+100 while dept='财务'

结果:如果当前记录符合条件就开始替换,直至遇到第一个不符合条件的记录为止。
这时与 REST 的情况不同,REST是从当前到最后。
2021-07-14 15:22
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
VFP版本 VFP9 7423
其他版本没测试
2021-07-14 15:25
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:0 
版主们对我的示例可能理解有误。我的示例是想说明:在省略范围选项且只有WHILE条件时,这时的默认范围是REST,也就是说加上REST与不加效果是一样的。
我们再测试一下,如果将示例中的语句改为:replace ALL salary with salary+100 while dept='财务',则该命令什么也不会做。因为范围是ALL,系统会首先将指针跳转至行首,从第一条记录判断while条件,由于该记录不满足条件,因此指针就定位在第1条记录(WHILE条件的特性)。
另外,WHILE 条件一般情况下应用于索引排序后的表。我给出的示例就是按部门做了排序。

泉城飞狐
2021-07-15 09:52
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
VFP帮助对WHILE子句有说明:其他条件与WHILE一起使用时,WHILE优先且其他脱离不了WHILE范围,受WHILE制约。
图片附件: 游客没有浏览图片的权限,请 登录注册
2021-07-15 10:48
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:610
专家分:1784
注 册:2017-7-16
收藏
得分:0 
十四楼确实是错了。
九楼的朋友,指出了错误所在。

[此贴子已经被作者于2021-7-15 14:10编辑过]

2021-07-15 14:09
快速回复:菜鸟问题:关于replace
数据加载中...
 
   



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

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