有时候我们为了一些特殊的要求把文件中的一些机密用令牌的方式来加密,但要读取的时候又要看的明白,有时候要把一些文本替换为令牌,为此提供下面的代码以供参考
?dhtokenreplace("unable to add file %1 to %2","c:\batcaa.bat","cc\aadbe")
unable to add file c:\batcaa.bat to cc\aadbe
?dhtokenreplace1("unable to add file c:\batcaa.bat to cc\aadbe","c:\batcaa.bat","cc\aadbe")
unable to add file %1 to %2
'把令牌替换为文本
Public Function dhTokenReplace(ByVal strIn As String, _
ParamArray varItems() As Variant) As String
On Error GoTo HandleErr
Dim intPos As Integer
Dim strReplace As String
Dim intI As Integer
For intI = LBound(varItems) To UBound(varItems)
strReplace = "%" & (intI + 1)
intPos = InStr(1, strIn, strReplace)
If Len(intPos) > 0 Then
strIn = Left$(strIn, intPos - 1) & _
varItems(intI) & Mid$(strIn, intPos + _
Len(strReplace))
End If
Next intI
ExitHere:
dhTokenReplace = strIn
Exit Function
HandleErr:
Select Case Err.Number
Case Else
MsgBox "Error:" & Err.Description & "(" & Err.Number & ")"
End Select
Resume ExitHere
End Function
'把文本换为令牌
Public Function dhTokenReplace1(ByVal strIn1 As String, _
ParamArray varItems1() As Variant) As String
On Error GoTo HandleErr
Dim intPos1 As Integer
Dim strReplace1 As String
Dim intI1 As Integer
For intI1 = LBound(varItems1) To UBound(varItems1)
strReplace1 = varItems1(intI1)
intPos1 = InStr(1, strIn1, strReplace1)
If Len(intPos1) > 0 Then
strIn1 = Left$(strIn1, intPos1 - 1) & _
"%" & (intI1 + 1) & Mid$(strIn1, intPos1 + _
Len(strReplace1))
End If
Next intI1
ExitHere:
dhTokenReplace1 = strIn1
Exit Function
HandleErr:
Select Case Err.Number
Case Else
MsgBox "Error:" & Err.Description & "(" & Err.Number & ")"
End Select
Resume ExitHere
End Function