set exact 命令

请参阅

指定比较不同长度两个字符串时,Visual FoxPro 使用的规则。

语法

SET EXACT ON | OFF

参数
ON

指定相等的表达式必须是每个字符都相匹配。比较时,忽略表达式结尾的空格。比较两个表达式时,在较短的一个的右边加上空格,以使它与较长表达式的长度相匹配。

OFF

(默认值)指定必须是右端表达式结尾前的每个字符都相匹配,才是相等的表达式。

说明

SET EXACT 设置值对于相等长度的字符串没有任何作用。

字符串比较

Visual FoxPro 有两个测试相等的关系操作符。
操作符 = 在两个相同类型的值之间进行比较。这个操作符适用于比较字符、数值、日期和逻辑数据。
但是,当使用操作符 = 比较两个字符表达式时,比较结果可能与预期的不完全相同。字符表达式比较时是从左到右逐个字符进行比较,一直到两个表达式中的对应字符不相等,或者到达操作符右端表达式的末端 (SET EXACT OFF),或者到达两个表达式的末端 (SET EXACT ON)。
当需要两个完全相同的字符数据时可以使用操作符 ==。如果两个字符表达式使用操作符 == 进行比较时,操作符两边的表达式必须包含完全一样的字符(包括空格),才认为是相等的。使用操作符 == 进行字符串比较时忽略 SET EXACT 设置。

下表说明选择的操作符和 SET EXACT 设置如何影响比较。(下划线代表空格)。

比较 = EXACT OFF = EXACT ON == EXACT ON 或 OFF
"abc" = "abc" 匹配 匹配 匹配
"ab" = "abc" 不匹配 不匹配 不匹配
"abc" = "ab" 匹配 不匹配 不匹配
"abc" = "ab_" 不匹配 不匹配 不匹配
"ab" = "ab_" 不匹配 匹配 不匹配
"ab_" = "ab" 匹配 匹配 不匹配
"" = "ab" 不匹配 不匹配 不匹配
"ab" = "" 匹配 不匹配 不匹配
"__" = "" 匹配 匹配 不匹配
"" = "___" 不匹配 匹配 不匹配
TRIM("___") = "" 匹配 匹配 匹配
"" = TRIM("___") 匹配 匹配 匹配

SET EXACT 的作用域是当前数据工作期。