请教各位老师,我的环境是vb6+windows2000。
有字符串str="D:\Temp\roads.shp"
如何获得最右边的"\"位置呢?
谢谢!

解决方案 »

  1.   

    InStrRev函数
          描述返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。语法InstrRev(string1, string2[, start[, compare]])InstrRev函数语法有如下几部分:部分 描述 
    string1 必需的。要执行搜索的字符串表达式。 
    string2 必需的。要搜索的字符串表达式。 
    start 可选的。数值表达式,设置每次搜索的开始位置。如果忽略,则使用–1,它表示从上一个字符位置开始搜索。如果start包含 
    Null,则产生一个错误。
     
    compare 可选的。数字值,指出在判断子字符串时所使用的比较方法。如果忽略,则执行二进制比较。关于其值,请参阅“设置值”部分。 
    设置值compare参数值如下:常数 值 描述 
    vbUseCompareOption –1 用Option Compare语句的设置值来执行比较。 
    vbBinaryCompare  0 执行二进制比较。 
    vbTextCompare  1 执行文字比较。 
    vbDatabaseCompare  2 只用于Microsoft Access。基于您的数据库信息执行比较。 
    返回值InStrRev返回值如下:如果 InStrRev返回 
    string1长度为零。 0 
    string1为Null。 Null 
    string2长度为零 Start 
    string2为Null Null 
    string2没有找到。 0 
    string2在string1中找到。 找到匹配字符串的位置。 
    start > Len(string2) 0 
    说明请注意,InstrRev函数的语法和Instr函数的语法不相同。
      

  2.   

    dim i as integer
     i = instrrev(str,"\")
      

  3.   

    你是需要最右边的哪个符号吧,先检查最右边是不是"/",如果是,
    for i=1 to len(str)
         if mid(str,i,1)= "/" then
               j=i
         end if
    next
      

  4.   

    如果要最左边的,把for语句改为for i=len(str) to 1 step=-1就行了
      

  5.   

    for i=1 to len(str)
         if mid(str,i,1)= "\" then
               j=i
         end if
    next
      

  6.   

    //上面的方法,经过验证是不正确的不应该啊
    Dim s As String
    s = "hello\abcd\eddw3eew\saadaasd\sas"
    MsgBox InStrRev(s, "\")
    MsgBox InStr(1, s, "\")
      

  7.   

    有字符串str="D:\Temp\roads.shp"
    如何获得最右边的"\"位置呢?==========================msgbox instrrev(str,"\") 就是啦!
      

  8.   

    随便写个例子,变量命名不规范,勿笑^_^
    Dim strr As String
        Dim i As Integer
        Dim j As Integer
        strr = "c:\a\b\c.txt"
        If Len(strr) > 0 Then
           i = InStr(1, strr, "\")
           If i > 0 Then
              For j = i To Len(strr)
                  If InStr(i + 1, strr, "\") > 0 Then
                     i = InStr(i + 1, strr, "\")
                  Else
                     Exit For
                  End If
                  j = i
              Next j
              MsgBox j
           Else
              MsgBox "no have \"
           End If
        End If
      

  9.   

    str1=Right(str, Len(str) - InStrRev(str, "\"))
      

  10.   

    //有字符串str="D:\Temp\roads.shp"
    //如何获得最右边的"\"位置呢?
     dim n as integer
       if instr(str,"\")>0 then
           n=inStrRev(str,"\")
       '需要找“\”前的字符
       str1=mid(str,1,n-1)
       '需要找“\”后的字符
       str2=mid(str,n+1,len(str)-n)
    end if
    这个我已经试验过了 可以的。
      

  11.   

    Private Function FindStr(Str As String) As Integer
    Dim i As Integer, n As Integer
    For i = Len(Str) To 1 Step -1
        If Mid(Str, i, 1) = "\" Then
            FindStr = i
            i = 0
        End If
    Next
    End Function该函数就能返回所测试的字符中"\"号从左到右的位置,
    如果没有"\"号,则返回0.