查找字符串重合部分
Public Function SpyFindSubString(ByRef MainString As UNICODE_STRING, ByRef SubString As UNICODE_STRING) As BooleanDim Buff1() As Integer
Dim Buff2() As Integer
Dim i As Integer
Dim j As Integer
If MainString.Length < SubString.Length Then SpyFindSubString = False: Exit Function
If MainString.Length = SubString.Length Then
ReDim Buff1(1 To MainString.Length / 2)
ReDim Buff2(1 To MainString.Length / 2)
CopyMemory VarPtr(Buff1(1)), MainString.pBuffer, MainString.Length
CopyMemory VarPtr(Buff2(1)), SubString.pBuffer, SubString.Length
For i = 1 To MainString.Length / 2
If Buff1(i) <> Buff2(i) Then
SpyFindSubString = False
Exit Function
End If
Next i
SpyFindSubString = True
Else
ReDim Buff1(1 To MainString.Length / 2)
ReDim Buff2(1 To SubString.Length / 2)
CopyMemory VarPtr(Buff1(1)), MainString.pBuffer, MainString.Length
For j = 1 To (MainString.MaxLength - SubString.Length) / 2
CopyMemory VarPtr(Buff2(1)), SubString.pBuffer, SubString.Length
For i = 1 To SubString.Length / 2
If Buff1(i + j - 1) <> Buff2(i) Then
SpyFindSubString = False
Exit Function
End If
Next i
Next j
SpyFindSubString = True
End If
这串代码有个问题就是字符串长度不等就会发生逻辑错误。。。 那就以短的那个为准,超出的部分去掉。
页:
[1]