|
Attribute VB_Name = "modLock"
Public Function LockToKey(ByVal Lck As String) As String
Dim h As Integer, j As Integer, n As Integer
n = 5
h = InStr(1, Lck, " ")
If h Then Lck = Left$(Lck, h - 1)
h = Asc(Lck) Xor Asc(Right$(Lck, 1)) Xor Asc(Right$(Lck, 2)) Xor n
h = (h \ 16) Xor (h * 16)
Do While h > 255
h = h - 256
Loop
Select Case h
Case 0, 5, 36, 96, 124, 126
LockToKey = "/%DCN" & Right$("00" & CStr(h), 3) & "%/"
Case Else
LockToKey = Chr(h)
End Select
For j = 2 To Len(Lck)
h = Asc(Mid$(Lck, j, 1)) Xor Asc(Mid$(Lck, j - 1, 1))
h = (h \ 16) Xor (h * 16)
Do While h > 255
h = h - 256
Loop
Select Case h
Case 0, 5, 36, 96, 124, 126
LockToKey = LockToKey & "/%DCN" & Right$("00" & CStr(h), 3) & "%/"
Case Else
LockToKey = LockToKey & Chr(h)
End Select
Next
End Function
Public Function BeforeLast(ByVal sData As String, ByVal sString As String)
If InStr(1, sData, sString) Then
BeforeLast = Left(sData, InStrRev(sData, sString) - 1)
Else
BeforeLast = sData
End If
End Function
Public Function AfterFirst(ByVal sData As String, ByVal sString As String)
If InStr(1, sData, sString) Then
AfterFirst = Right(sData, Len(sData) - InStr(1, sData, sString) - (Len(sString) - 1))
Else
AfterFirst = ""
End If
End Function
Public Function AfterLast(ByVal sData As String, ByVal sString As String)
If InStr(1, sData, sString) Then
AfterLast = Right(sData, Len(sData) - InStrRev(sData, sString) - (Len(sString) - 1))
Else
AfterLast = ""
End If
End Function
Public Function BeforeFirst(ByVal sData As String, ByVal sString As String)
If InStr(1, sData, sString) Then
BeforeFirst = Left(sData, InStr(1, sData, sString) - 1)
Else
BeforeFirst = sData
End If
End Function
|
|