求大神!关于VFP的字符串精确比较与EXACT 设置
发布网友
发布时间:2024-09-30 01:42
我来回答
共1个回答
热心网友
时间:2024-12-04 16:09
这种事情废个什么口舌?给你个手册介绍自己看吧。
回答粗暴点,敬请原谅,哈
指定比较不同长度两个字符串时,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("___") 匹配 匹配 匹配