VB6 Advanced Filter Function

来源:互联网 发布:linux经典书籍推荐 编辑:程序博客网 时间:2024/06/05 09:25
'增强版Filter函数,添加匹配起始位置参数StartPos'StartPos=0,从数组元素左侧起匹配'StartPos=1,从数组元素右侧起匹配'StartPos=2,不限定匹配的起始位置Public Function TArr(OArr() As String, InputTXT As String, Optional CTF As Boolean = True, Optional StartPos As Integer = 0) As String()Dim i As LongDim j As LongDim l As IntegerDim aBuff() As Stringl = Len(InputTXT)If (StartPos = 2) Then   aBuff = Filter(OArr(), InputTXT, CTF)   Else   i = -1   j = -1      If CTF Then      If (StartPos = 0) Then         Do While i <= UBound(OArr) - 1            i = i + 1            If InStr(OArr(i), InputTXT) = 1 Then                j = j + 1                ReDim Preserve aBuff(j)                aBuff(j) = OArr(i)            End If         Loop      Else         Do While i <= UBound(OArr) - 1            i = i + 1            If InStrRev(OArr(i), InputTXT) = Len(OArr(i)) - l + 1 Then                j = j + 1                ReDim Preserve aBuff(j)                aBuff(j) = OArr(i)            End If         Loop      End If   Else      If (StartPos = 0) Then         Do While i <= UBound(OArr) - 1            i = i + 1            If InStr(OArr(i), InputTXT) <> 1 Then                j = j + 1                ReDim Preserve aBuff(j)                aBuff(j) = OArr(i)            End If         Loop      Else         Do While i <= UBound(OArr) - 1            i = i + 1            If InStrRev(OArr(i), InputTXT) <> Len(OArr(i)) - l + 1 Then                j = j + 1                ReDim Preserve aBuff(j)                aBuff(j) = OArr(i)            End If         Loop      End If   End IfEnd IfTArr = aBuffEnd Function

0 0
原创粉丝点击