标题:VFP帮助文件中的一处错误
取消只看楼主
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
结帖率:96.77%
已结贴  问题点数:20 回复次数:2 
VFP帮助文件中的一处错误
近日,无意之间查阅VFP帮助文件,发现有一处错误与各位坛友讨论。以下截图来自于 VFP9 帮助文件中对 Select()函数的描述。

用红线标注出的语句大意是:如果将 SET COMPATIBLE 设置为 ON,则 SELECT()函数将返回未使用的最大工作区编号。

使用如下代码测试:

close tables all
set compatible on
? select()

按道理说,上述代码 ?select() 应该返回 32767 才对,可实际返回的结果是 1。

可见,在兼容模式下,select()函数返回的是“未使用的最小工作区编号”。

我还查阅了 VFP6的帮助文件,也存在同样的错误。不知道各位坛友怎么看?

[此贴子已经被作者于2016-2-4 11:20编辑过]

搜索更多相关主题的帖子: compatible tables 工作区 close 
2016-02-04 10:45
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
得分:0 
不可能是翻译错误。因为在帮助文档中 Select(1) 的说明是“return the highest-numbered unused work area”,而实际执行时,select(1)返回 32767。所以,还是帮助原文确实有错误。

泉城飞狐
2016-02-04 13:46
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
得分:0 
感谢大家踊跃发言。现在我来证明一下 select()在帮助文件中的解释是错误的。

1. 帮助文件中对 select(1)的解释是“return the highest-numbered unused work area”。对 select()在兼容模式下运行时的解释是“returns the number of the unused work area with the highest number”。解释中都有“highest”和“unused work area”,但select(1)的返回值是 32767,这分明是“未使用的最大工作区编号”,但 select()返回的是 1(关闭所有表,并 SET COMPATIBLE ON),这分明又是“未使用的最小工作区编号”。因此,可以证明:帮助文档中必定有一处的描述是错误的。

2. 我们都知道:select 0 会切换到未使用的最小编号工作区(这是一个公理性常识,无需证明)。在帮助文件中对 select 0 的解释是“the lowest-numbered unused work area is activated”,注意:其中的“lowest”。

由以上两点,可以得出最终结论:帮助文件中对 select()的解释是错误的。

泉城飞狐
2016-02-05 12:22



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




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

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