漫谈Foxpro中字符串的相等(Talking about the equality of string in Foxpro).docVIP

漫谈Foxpro中字符串的相等(Talking about the equality of string in Foxpro).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
漫谈Foxpro中字符串的相等(Talking about the equality of string in Foxpro)

漫谈Foxpro中字符串的相等(Talking about the equality of string in 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.   在复合索引

您可能关注的文档

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档