none
请教:VB6中关于字符串比较函数InStr()的参数compare的一个问题 RRS feed

  • 问题

  • 我刚开始自学VB 6.0,碰到一个关于字符串比较函数 InStr() 的 compare 参数的使用问题,问题如下,请大侠指点,谢谢。

     

    1.

    Option Compare Text

     

    Private Sub Form_Load()

    Dim g1, g2
    Dim string1 As String

    string1 = "abcABCdefDEFabcABCdefDEF"

    g1 = InStr(2, string1, "B", 1)
    g2 = InStr(2, string1, "B", -1)

    Debug.Print "g1 = " & g1
    Debug.Print "g2 = " & g2
    Debug.Print "--------------------"

    End Sub

     

    当我把compare参数设为 -1 时,因为在开头已经写了 Option Compare Text,所以根据msdn,系统应该会根据text来处理,所以,我的理解,g2的值应该是2,但是现在却出现运行错误,报错(参数错)在上面红色那一行。

     

    2.

    Option Compare Text

     

    Private Sub Form_Load()

    Dim g1, g2
    Dim string1 As String

    string1 = "abcABCdefDEFabcABCdefDEF"

    g1 = InStr(2, string1, "B", 1)
    g2 = InStr(2, string1, "B", vbUseCompareOption)

    Debug.Print "g1 = " & g1
    Debug.Print "g2 = " & g2
    Debug.Print "--------------------"

    End Sub

     

    当我把compare参数设为 vbUseCompareOption 时,因为在开头已经写了 Option Compare Text,所以根据msdn,系统应该会根据text来处理,所以,我的理解,g2的值应该是2,但是现在g2却等于5。

    2008年8月15日 9:30

答案

全部回复

  • 我不知道你用的什么版本

     

    MSDN上确实有vbUseCompareOption,但是实际上我的VB6只支持3个compare 参数

     

    vbBinaryCompare 0 执行一个二进制比较。
    vbTextCompare 1 执行一个按照原文的比较。
    vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库中信息的比较。

     

     

    2008年8月16日 1:02
    版主
  • 我也是自学的 ,根据我的理解,Option Compare Text语句,是用来定义缺省的状态.

    如:g2 = InStr(2, string1, "B"),那么它即是缺省状态,那么结果应该就是5,应该没有错.

    2008年8月17日 2:00
  •  feiyun0112 写:

    我不知道你用的什么版本

     

    MSDN上确实有vbUseCompareOption,但是实际上我的VB6只支持3个compare 参数

     

    vbBinaryCompare 0 执行一个二进制比较。
    vbTextCompare 1 执行一个按照原文的比较。
    vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库中信息的比较。

     

     

     

    "feiyun0112",你试出来也是同样的结果吗?

    2008年8月17日 5:46
  •  Mr Lu 写:

    我也是自学的 ,根据我的理解,Option Compare Text语句,是用来定义缺省的状态.

    如:g2 = InStr(2, string1, "B"),那么它即是缺省状态,那么结果应该就是5,应该没有错.

     

     

    如果不写参数,此处也应该是2。

    2008年8月17日 6:57
  • 你用对象浏览器看看

     

    缺省值是vbBinaryCompare

    2008年8月18日 0:52
    版主