|
该函数可以截取夹杂有唯一标示的字符串,如aa/dd/ff/gg其中"/"就是唯一表示. Function selectstr(ByVal str As String, ByVal selstr As String, ByVal index As Integer, ByVal place As Integer) As String Dim i As Integer Dim a As String = str If Mid(a, 1, selstr.Length) <> selstr Then '判断前几位是否和selstr相同不相同则使其相同 a = selstr & str End If If Mid(a, a.Length - selstr.Length, selstr.Length) <> selstr Then '判断后几位是否和selstr相同不相同则使其相同
a = a & selstr End If Select Case place Case Is = 0 For i = 1 To index str = Mid(a, selstr.Length + 1, InStr(Mid(a, selstr.Length + 1, a.Length), selstr)) '从和selstr长度相同的位置开始查找到selstr的位置 a = Mid(a, selstr.Length + 1, a.Length) a = selstr & Mid(a, InStr(a, selstr) + 1, a.Length) Next Case Is = 1 Try For i = 1 To index str = Mid(a, selstr.Length + 1, InStr(Mid(a, selstr.Length + 1, a.Length), selstr) - 1) '从和selstr长度相同的位置开始查找到selstr前面的位置 a = Mid(a, selstr.Length + 1, a.Length) a = selstr & Mid(a, InStr(a, selstr) + 1, a.Length) Next Catch ex As Exception MsgBox("无法查找该位置!", MsgBoxStyle.OkOnly, "出错") Return "" Exit Function End Try Case Is = 2 For i = 1 To index str = Mid(a, selstr.Length + 1, InStr(Mid(a, selstr.Length + 1, a.Length), selstr) + 1) '从和selstr长度相同的位置开始查找到selstr后面的位置 a = Mid(a, selstr.Length + 1, a.Length) a = selstr & Mid(a, InStr(a, selstr) + 1, a.Length) Next Case Else Return "" Exit Function End Select Return str End Function 'select str(str,selstr,index,place) 'str:被截取的字符串 'selstr:唯一标示,要截取的字符的临界点(比如aa/dd/ff/gg这里的"/"就是唯一标示) 'index:第几个匹配的位置 'place:该参数有3个值0,1,2 '0:截取到唯一标示的位置 '1:截取到唯一标示的前一个位置 '2:截取到唯一标示的后一个位置 '例子:找出字符串aa/dd/ff/gg中第3个"/"前的字符 'selectstr("aa/dd/ff/gg","/",3,1) |