VFP的字符串比较比较复杂。比较方法是自左向右逐个比较,若前面字符相同 再 向后进行比较,找到字符不同处就可决定大小。但是包括三种比较方式。通常的、默认的是按机器码"Machine"
即ASCII码进行比较,次序是空格<数字<大写英文字母<小写英文字母<汉字,一级汉字按照其拼音次序,二级汉字按照区位次序。一级汉字按全部拼音排序,不仅是第一个字母。也可设置为按拼音次序排序”pinyin",次序是空格<数字<小写英文字母<大写英文字母。还可以设为按笔画排序"Stroke"。
判断是否相等时,既要看是“=”,还是“==”,又要看exact 的设置,若是“=”,且exact 设为off,则以右方为准,右方字符串结束,比较也就结束。在这种情况下,"我们大家"="我们"的结果为逻辑真;exact 设为on,则将字符串短的后面补充空格使与另一字符串等长,再自左向右逐一比较。在这种情况下,"我们大家"="我们"的结果为逻辑假。
是这样的:
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" 设置按笔划顺序比较大小
希望对你能有所帮助。