- 3
- 0
- 约2.98千字
- 约 7页
- 2017-12-22 发布于河南
- 举报
漫谈Foxpro中字符串的“相等”
漫谈Foxpro中字符串的“相等”
漫谈Foxpro中字符串的“相等”
[返回]
在Foxpro中,当判断两个字符串是否相等时,可以使用比较操作符“==”和“=”。
当两个字符串用“==”进行比较时,操作符两边的字符串必须含有完全相同的字符(包括空格),才认为是相等的(.T.),否则为不相等(.F.)。
当两个字符串用“=”进行比较时,其结果可能与预期的不完全相同。例如判断:ab=a,其结果在不同的环境下,可能是.T.也可能是.F.。如果两个字符串的长度相同,比较时从左到右逐个字符进行,如对应的字符有不相等的,则其比较结果为不相等(.F.),如一直到结尾对应的字符都相等则其比较结果为相等(.T.);如果两个字符串的长度不同,则在不同的命令中取决于不同的环境设置。本文着重探讨长度不同的两个字符串在不同的命令中用“=”进行比较的结果。
一、一般命令中的字符串的比较
在一般命令中,两个长度不相同的字符串用“=”的比较结果取决于EXACT的设置值(ON/OFF)。当EXACT的设置值为OFF(默认值)时,只要等号右端字符串的所有字符和左端相应的字符相等,其结果就为相等(.T.)。所以,这时字符串的比较与两个字符串所位于等号的左右位置有关。当EXACT的设置值为ON时,则忽略两个字符串结尾的空格,而在较短的一个的右边加上足够的空格,以使二者的长度相等,并且每个相应的字符都相等其结果才相等(.T.)。
下表说明EXACT的设置值如何影响字符串的比较。
比较
EXACT OFF
EXACT ON
abc = abc
.T.
.T.
ab = abc
.F.
.F.
abc = ab
.T.
.F.
abc = ab+space(1)
.F.
.F.
ab = ab+space(1)
.F.
.T.
ab+space(1) = ab
.T.
.T.
= ab
.F.
.F.
ab =
.T.
.F.
ab = spac(1)
.F.
.F.
space(2)=
.T.
.T.
= space(2)
.F.
.T.
TRIM(space(2)) =
.T.
.T.
= TRIM(space(2))
.T.
.T.
在实际使用中要注意以下几个问题:
(1)表中字符型字段参与比较时,字符型字段的长度等于字段定义的长度,其尾部如有空缺是用空格填充的。在实际应用中,这一情况很容易被忽略而造成失误。
我们以下述产品表(ChanPin)为例说明。
ChanPin表的结构为:
字段
字段名
类型
宽度
小数位
1
DM
字符型
6
否
2
MC
字符型
20
否
表中记录为:
记录号
DM
MC
1
1321
21”电视机(万台)
2
1325
25”电视机(万台)
3
1329
29”电视机(万台)
4
13
电视机(万台)
执行如下命令:
set exact off
go top
?DM==1321, DM==1321 , len(DM), DM=1321, 1321=DM
结果显示
.F. .T. 6 .T. .F.
set exact on
?DM==1321, DM==1321 , len(DM), DM=1321, 1321=DM
结果显示
.F. .T. 6 .T. .T.
可以看到,记录1的DM其值为1321 (13后面有2个空格),而不是1321。
(2)表中字符型字段索引后,在使用SEEK命令搜索时,如果搜索字符串的长度大于索引关键字的长度,FOUND()结果肯定为.F.,这一点与LOCATE不同。
仍以上述产品表为例,在DM字段上建立索引,下表为在不同的情况下,FOUND()的值:
EXAC OFF
EXAC ON
seek spac(0)
.T.
.F.
seek spac(1)
.F.
.F.
seek 13
.T.
.T.
seek 13+spac(1)
.T.
.T.
seek 13+spac(4)
.T.
.T.
seek 13+spac(8)
.F.
.F.
Locate for dm=13+spac(8)
.F.
.T.
在复合索引中,应特别注意字符字段尾部的空格不能被忽略。例如,我们在前述的产品表上建立一个复合索引:
您可能关注的文档
最近下载
- 部编版语文五年级下册第六单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第五单元教材解读大单元集体备课.pptx VIP
- 河北广谋新材料科技有限公司年产600万平方米复合革及隔音布、400万平方米新型复合网项目环境影响报告表.docx VIP
- 部编版语文五年级下册第四单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第三单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第二单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第一单元教材解读大单元集体备课.pptx VIP
- 车工 (数控车床)理论知识考核要素细目表四级.pdf VIP
- 本科课程《基础护理学》教案,第十二章给药.doc VIP
- 农村题材小品剧本村官.pdf VIP
原创力文档

文档评论(0)