vfp中的字符串比较问题

进行字符串比较时,使命令?"我们大家"="我们"的结果为逻辑假的设置是:
A.set exact on
B.set exact off
C.set collate to "Machine"
D.set collate to "Stroke"
求解答一下C.D.选项为什么是.T.,如何比较?
我对C的理解是,汉字机内码按照拼音顺序决定大小的话,从左向右比较,只要第一个拼音的第一个字母相同就可以,是这样的吗?

VFP的字符串比较比较复杂。比较方法是自左向右逐个比较,若前面字符相同 再 向后进行比较,找到字符不同处就可决定大小。但是包括三种比较方式。通常的、默认的是按机器码"Machine"
即ASCII码进行比较,次序是空格<数字<大写英文字母<小写英文字母<汉字,一级汉字按照其拼音次序,二级汉字按照区位次序。一级汉字按全部拼音排序,不仅是第一个字母。也可设置为按拼音次序排序”pinyin",次序是空格<数字<小写英文字母<大写英文字母。还可以设为按笔画排序"Stroke"。
判断是否相等时,既要看是“=”,还是“==”,又要看exact 的设置,若是“=”,且exact 设为off,则以右方为准,右方字符串结束,比较也就结束。在这种情况下,"我们大家"="我们"的结果为逻辑真;exact 设为on,则将字符串短的后面补充空格使与另一字符串等长,再自左向右逐一比较。在这种情况下,"我们大家"="我们"的结果为逻辑假。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-25
是这样的:
VFP 字符的默认的对比规则是按"pinyin"(拼音)的,不是按ASCII码。在拼音对比中大写的任何一个字母都比小写的大,不信的话 你试一试 ? 'C' > 'a' 答案肯定是 T

要想按ASCII码比较 ,首先输入以下命令(或则在 工具\选项\数据\排序序列里改):
SET COLLATE TO "MACHINE"

这样,?"a">"A 肯定是 .T.

其他:

SET COLLATE TO "pinyin" 按拼音排序比较大小

SET COLLATE TO "MACHINE" 按ASCII码比较大小

SET COLLATE TO "STROKE" 设置按笔划顺序比较大小
希望对你能有所帮助。
相似回答