s = split( "E:\xx\xx.ini" , "\" )msgbox s( ubound(s) )
用 InStrRev( ) 和 Mid$( ) 函数搞定。 Dim s$, i&s = "E:\xx\xx.ini" i = InStrRev(s, "\") ' 得到最后一个\字符的位置 s = Mid$(s, i + 1) ' 截取最后那段字符串
Private Sub Form_Load() Dim XX As String, A As Integer, B As Integer XX = "E:\xx\xx\XXX\XX\XXX\AA.ini" B = Len(XX) '得到字符串的长度 A = InStrRev(XX, "\") '检测最后一个“\”号的位置 XX = Right(XX, B - A) '截取字符串后面 B-A 位置的字符串 '最后变量 XX 是 "AA.ini",适合路径不论多长,均可以得到文件名 + 扩展名 End Sub
split.可以解决
楼主是要取目录吧。倒序查找是正解。Dim s$, i& s = "E:\xx\xx.ini" MsgBox Left(s, InStrRev(s, "\"))
那些说用 Split的,都是“只要能出结果就行,不管运行效率”的人。
用split的估计都看错题了吧。不是取文件名,而是去目录啊。非要用split也可以的。Dim s s = Split("E:\xx\xx.ini", "\") s(UBound(s)) = "" MsgBox Join(s, "\")
Dim s As Strings = "E:\xx\xx.ini" Dim s1 As String s1 = Replace(s, "E:\xx", "")
我都是用笨方法 s = "E:\xx\xx.ini"for i= 1 to 10 a=right(len(s)-instr(s,"\)-1)next i msgbox a没测试。你试试。呵呵。
Dim s$, i&s = "E:\xx\xx.ini"
i = InStrRev(s, "\") ' 得到最后一个\字符的位置
s = Mid$(s, i + 1) ' 截取最后那段字符串
Dim XX As String, A As Integer, B As Integer
XX = "E:\xx\xx\XXX\XX\XXX\AA.ini"
B = Len(XX) '得到字符串的长度
A = InStrRev(XX, "\") '检测最后一个“\”号的位置
XX = Right(XX, B - A) '截取字符串后面 B-A 位置的字符串
'最后变量 XX 是 "AA.ini",适合路径不论多长,均可以得到文件名 + 扩展名
End Sub
s = "E:\xx\xx.ini"
MsgBox Left(s, InStrRev(s, "\"))
s = Split("E:\xx\xx.ini", "\")
s(UBound(s)) = ""
MsgBox Join(s, "\")
Dim s1 As String
s1 = Replace(s, "E:\xx", "")
s = "E:\xx\xx.ini"for i= 1 to 10
a=right(len(s)-instr(s,"\)-1)next i
msgbox a没测试。你试试。呵呵。