VB / VBA 中比较模式的区别:binarycompare和textcompare区别
使用inStr方法时,对比较模式有点搞不清楚,到底binarycompare和textcompare有什么区别。
其实这在英文中用的比较多,中文问题不大,例如p和P,在二进制比较中,这两个就完全两种东西,在文本比较中,这两个东西是同一个东西。
看看官方的例子很容易弄懂:
' 定义要被检索的字符串
Dim searchString As String = "XXpXXpXXPXXP"
' 定义要检索的字符串(大写的P)
Dim searchChar As String = "P"
Dim testPos As Integer
' 文本比较:从第4个字符开始,结果为6,因为小p和大P没区别。
testPos = InStr(4, searchString, searchChar, CompareMethod.Text)
' 二进制比较:从第1个字符开始,结果为9,因为小p和大P有区别,定位到最后一个大P
testPos = InStr(1, SearchString, SearchChar, CompareMethod.Binary)
' 如果可选比较模式缺省,默认为二进制比较,将返回9。
' 如果可选比较模式为文本比较,将返回3
testPos = InStr(searchString, searchChar)
' 如果未查询到要检索的字符串则返回0
testPos = InStr(1, searchString, "W")