太极螳螂双手刀:vb里如何比较不同的字符串

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 06:43:27
我知道在vb里的字符串比较函数strcomp()
也知道
如果第三个参数为 1 执行文本比较;如果第三个参数为 0 或者省略执行二进制比较。

Dim MyStr1, MyStr2, MyComp
MyStr1 = "ABCD": MyStr2 = "abcd" '定义变量。
MyComp = StrComp(MyStr1, MyStr2, 1) ' 返回 0。
MyComp = StrComp(MyStr1, MyStr2, 0) ' 返回 -1。
MyComp = StrComp(MyStr2, MyStr1) ' 返回 1。

可是 这只是相同的字符串在比较啊
如果是不同的字符串之间比较的话 怎么区分谁大谁小啊

比如
MyStr1 = "ABCD": MyStr2 = "bumingbai"
这个时候
MyComp = StrComp(MyStr1, MyStr2, 1) 返回什么呢?

字符串比较是从第一个字符开始比较,并且比较的是ASCII码,你比较一下"A" 和"b"谁大谁小,"A" 小于"b",这样后面的就不比较了.也就是"ABCD" 小于 "bumingbai" .
如果第一个字符相同,就比较第二个,依此类推.
////////////////////////////////////////////////
/////StrComp 函数

返回 Variant (Integer),为字符串比较的结果。

语法

StrComp(string1, string2[, compare])

StrComp 函数的语法有下面的命名参数:

部分 说明
string1 必要参数。任何有效的字符串表达式。
string2 必要参数。任何有效的字符串表达式。
Compare 可选参数。指定字符串比较的类型。如果 compare 参数是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。

设置

compare 参数设置为:

常数 值 描述
vbUseCompareOption -1 使用Option Compare语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库信息的比较。

返回值

StrComp 函数有下列返回值:

如果 StrComp 返回
string1 小于 string2 -1
string1 等于 string2 0
string1 大于 string2 1
string1 或 string 2为 Null Null

很好学,加油。

二进程比较:
根据从字符的内部二进制表示形式导出的排序顺序执行二进制比较。
通常意义上的字典顺序,区分大小写。
A < B < E < Z < a < b < e < z

文本比较:
根据系统的 LocaleID 值所确定的不区分大小写的文本排序顺序执行文本比较。
相当于全部转成大写(或小写)比较。
(A=a) < (B=b) < (E=e) < (Z=z)

所以应该返回 -1。
(没有在VB环境下测试)
即使:
MyStr1 = "abcd": MyStr2 = "BUMINBAI"
这个时候
MyComp = StrComp(MyStr1, MyStr2, 1) 返回还是-1