大侠9命——如何读取特定字符右边的字符串(已解决,谢谢斑竹随风逐流)
譬如这个字符串HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun要获取“\”左边的字符可以用pos函数先得到第一个"\"的位置,然后用
left(string,lpos)
但是如果要获取最后那个"\"的位置,然后获取"\"右边的函数应该怎么做呢
right(string,rpos)
这个rpos怎么去获得?还有如果要获得这2个"\"中间的字符串,应该怎么使用mid函数呢?
[[it] 本帖最后由 hjtai 于 2008-6-5 10:41 编辑 [/it]]
[[it] 本帖最后由 hjtai 于 2008-6-5 10:42 编辑 [/it]]
Dim a As String
a = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun"
MsgBox Right(a, Len(a) - InStrRev(a, "\")) InStr函數是從左邊開始找
InStrRev函數是從右邊開始找 MyPos = InstrRev("12345678","8",-1,1)
就是从最后搜索从最后一个字符位置开始。然后搜索从右到左继续进行,
读的位置是从左向右来读,所以是第八,位置是相对左边的!!
InstrRev("12345687","8",-1,1) '返回7
InstrRev("1834567","8",5,1)'从左边第五位开始向左搜索第一个8,返回2
InstrRev("1838567","8",5,1)'从左边第五位开始向左搜索第一个8,返回4
在网上找到一个这样的回复,解决了取右边字符的问题。
但是取2个字符中间字符串的问题……还是不知道怎么做
谢谢LS几位老大 想到一个比较愚笨的方法就是,取第一个"\"字符后面的字符串,然后减去最后一个"\"字符后面的字符串,不知道可不可以,我去试试先 老兄,你要思考
例如說HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun
你要得到第3個吧
Dim a As String
Dim i As String
a = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun"
' MsgBox Right(a, Len(a) - InStrRev(a, "\"))
i = 1
Do While i < 3
a = Right(a, Len(a) - InStr(a, "\"))
i = i + 1
Loop
MsgBox Left(a, InStr(a, "\") - 1)
Do While i < 3(如果你要取第四個,把這裡3改成4) 感谢随风逐流,也帮了我一大忙。。。 [quote][bo][un]hjtai[/un] 在 2008-6-5 10:00 的发言:[/bo]
譬如这个字符串HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun
要获取“\”左边的字符可以用pos函数先得到第一个"\"的位置,然后用
left(string,lpos)
但 ... [/quote]
Dim STR1 As String
Dim I As Long, J As Long
STR1 = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun"
I = InStr(STR1, "\") + 1
If I > 1 Then
J = InStrRev(STR1, "\")
If J Then Debug.Print Mid(STR1, I, J - I)
End If
页:
[1]
