您好,欢迎来到投聚财经。
搜索
您的当前位置:首页关于VFP的字符串比较运算

关于VFP的字符串比较运算

来源:投聚财经




关于VFP的字符串比较运算(一)

对字符串来说,其比较规则如下:比较两个字符串时,系统对两个字符串的

字符自左向右逐个进行比较,一旦发现两个对应字符不同,就根据它们的排序序

列决定字符串的大小。对字符序列的排序设置选项有三种:Machine(机器)、

Pinyin(拼音)、Stroke(笔画)。

a)Machine(机内码)次序:字符按ASCII码值比较(小写字母>大写字母>空格),

汉字按拼音顺序比较。

例:“abc”>“abcd”、“b”>“B”、“c”<“ c”、“张”>“李”

b)Pinyin(拼音)次序:汉字按拼音顺序比较,字符按大写字符>小写字符>空格

进行比较。

例:“a”< “A”


两个字符串比较时,若长度相等,比较时规则相对容易,不论是进行=(单等

)还是==(双等号)运算,即比较时从左到右逐个字符进行,如对应的字符有不

相等的,则其比较结果为不相等(.F.),如一直到结尾对应的字符都相等则其比

较结果为相等(.T.)。

如果两个字符串的长度不同,则SETEXACT ON SETEXACT OFF这两

条命令将会直接影响表1中列出的=(等于)和!=(不等于)的运算规则。字

符串比较过程中经常产生的疑义将由此而来。

2:在命令窗口输入如下语句。

SETEXACT OFF &&字符串进行非精确比较

?"王老师">"", "王老师"<"" 2.1 长度不相等的字符串比较

&&运算结果为.F. .F.

2.1.1 执行SET EXACT OFF 命令时的比较



EXACT的设置值为OFF(默认值)时,只要运算符右边字符串的所有字

符和运算符左边字符串的左端部分内容相匹配,则认为两个字符串相等。

2.1.2执行SETEXACT ON 命令时的比较

EXACT的设置值为ON时,在较短的一个字符串的右边加上足够的空格,

以两个字符串的长度相等,并且每个相应的字符都相等,则认为两个字符串相等。

以上给出了在不同系统环境下的比较两个字符串是否相等的规则。如果两个

字符串不相等,则两个字符串一定具有大于或小于的关系。如何确定两个字符串

的大于或小于关系?用运算符<(小于)或>(大于)进行两字符串比较时,

比较到第1个不相同字符为止,否则,长度较长的字符串较""

可见,在以上的两个不同系统环境下,长度不相等的两个字符串的比较规则

不同。

关于VFP的字符串比较运算(二)

运算结果为.T.,而>(大于)
若两个字符串相等,则它们的=(等于)

<(小于)、!=(不等于)运算结果为.F.。、>=(大于等于)、<=(小于等于)

(不等于)

>=(大于等于)运算结果为.F.。若两个字符串不相等,且运算符左边的字符大

于运算符右边的字符串,则!=(不等于)、>(大于)、>=(大于等于)<运算结

果为.T.,而=(等于)、<(小于)、<=(小于等于)运算结果为.F.

3:在命令窗口输入如下语句:

SETEXACT OFF &&字符串进行非精确比较

?"王老师"="","王老师">="","王老师"<="" &&运算结果

.T..T. .T.

?"王老师">"","王老师"<"","王老师"!="" &&运算结果

.F..F. .F.

这是两个字符串进行非精确比较。"王老师"""比较时,运算符右边的字

符串""与运算符左边的字符串"王老师"前面的第12字符相等,则"王老师"

""相等。以上各运算的显示结果也不难理解。




在命令窗口输入如下语句:
SETEXACT ON &&字符串进行精确比较
?"王老师"="","王老师"<"","王老师"<="" &&运算结果为.F..F. .F. ?"王老师">"","王老师">="","王老师"!="" &&运算结果为.T..T. .T.这是两个字符串进行精确比较。这样两个字符串有特点:两个字符串长度不

相等,右边的字符串与左边的字符串前面部分内容相同。

"王老师"""比较时,在""的尾部加上4个空格,使要比较的两个字符串长度相等。再比较"王老师""",显然两个字符串不相等,且"王老师">""。以上的各运算的结果不难理解。





Copyright © 2019- tjwe.cn 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务