随便写个例子,变量命名不规范,勿笑^_^ 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
str1=Right(str, Len(str) - InStrRev(str, "\"))
//有字符串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 这个我已经试验过了 可以的。
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.
描述返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。语法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函数的语法不相同。
i = instrrev(str,"\")
for i=1 to len(str)
if mid(str,i,1)= "/" then
j=i
end if
next
if mid(str,i,1)= "\" then
j=i
end if
next
Dim s As String
s = "hello\abcd\eddw3eew\saadaasd\sas"
MsgBox InStrRev(s, "\")
MsgBox InStr(1, s, "\")
如何获得最右边的"\"位置呢?==========================msgbox instrrev(str,"\") 就是啦!
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
//如何获得最右边的"\"位置呢?
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
这个我已经试验过了 可以的。
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.