Private Function BinArrayToHex2(Bin() As Byte) As String
Dim iLoop As Long
Dim sResult As String
sResult = Space((UBound(Bin) - LBound(Bin) + 1) * 2)
For iLoop = LBound(Bin) To UBound(Bin)
Mid(sResult, (iLoop - LBound(Bin)) * 2 + 1) = Right("0" & Hex(Bin(iLoop)), 2)
Next iLoop
BinArrayToHex2 = Trim(sResult)
End Function
Private Function HexToBinArray(sHex As String) As Variant
Dim iLoop As Long
Dim bResult() As Byte
ReDim bResult(Len(sHex) \ 2 - 1)
For iLoop = 0 To Len(sHex) \ 2 - 1
bResult(iLoop) = Val("&H" & Mid(sHex, iLoop * 2 + 1, 2))
Next iLoop
HexToBinArray = bResult
End Function
Private Sub cmdStart_Click()
Const SourceFile = "D:\test1.jpg" '源路径
Const TargetFile = "D:\test2.jpg" '存储路径
Dim strHex As String
ReDim Data(FileLen(SourceFile)) As Byte
Open SourceFile For Binary Access Read As #1
Get #1, , Data
Close #1
strHex = BinArrayToHex2(Data)
Debug.Print strHex
Open TargetFile For Binary Access Write As #2
Put #2, , HexToBinArray(strHex)
Close #2
Private Function BinArrayToHex2(Bin() As Byte) As String
Dim iLoop As Long
Dim sResult As String
sResult = Space((UBound(Bin) - LBound(Bin) + 1) * 2)
For iLoop = LBound(Bin) To UBound(Bin)
Mid(sResult, (iLoop - LBound(Bin)) * 2 + 1) = Right("0" & Hex(Bin(iLoop)), 2)
Next iLoop
BinArrayToHex2 = Trim(sResult)
End Function
Private Function BinArrayToHex2(Bin() As Byte) As String
Dim iLoop As Long
Dim sResult As String
sResult = Space((UBound(Bin) - LBound(Bin) + 1) * 2)
For iLoop = LBound(Bin) To UBound(Bin)
Mid(sResult, (iLoop - LBound(Bin)) * 2 + 1) = Right("0" & Hex(Bin(iLoop)), 2)
Next iLoop
BinArrayToHex2 = Trim(sResult)
End Function
Private Function BinArrayToHex(Bin() As Byte) As String '从二进制到十六进制函数
Dim iLoop As Long
Dim sResult As String
sResult = Empty
For iLoop = LBound(Bin) To UBound(Bin)
sResult = sResult + Right("0" & Hex(Bin(iLoop)), 2) & " "
Next iLoop
BinArrayToHex = Trim(sResult)
End Function
Private Function HexToBinArray(sHex As String) As Variant
Dim iLoop As Long
Dim bResult() As Byte
ReDim bResult(Len(sHex) \ 3)
For iLoop = 0 To Len(sHex) \ 3
bResult(iLoop) = Val("&H" & Mid(sHex, iLoop * 3 + 1, 2))
Next iLoop
HexToBinArray = bResult
End Function
Private Sub cmdStart_Click()
Const SourceFile = "D:\test1.jpg" '源路径
Const TargetFile = "D:\test2.jpg" '存储路径
Dim strHex As String
' Dim Data(256) As Byte
ReDim Data(FileLen(SourceFile)) As Byte
Open SourceFile For Binary As #1
Get #1, , Data
Close #1
strHex = BinArrayToHex(Data)
Debug.Print strHex
Open TargetFile For Binary As #2
Put #2, , HexToBinArray(strHex)
Close #2
End Sub
Private Function BinArrayToHex(Bin() As Byte) As String
Dim iLoop As Integer
Dim sResult As String
sResult = ""
For iLoop = LBound(Bin) To UBound(Bin)
sResult = sResult + Right("0" & Hex(Bin(iLoop)), 2)
Next iLoop
BinArrayToHex = Trim(sResult)
End Function
Private Function HexToBinArray(sHex As String) As Variant
Dim iLoop As Integer
Dim bResult() As Byte
ReDim bResult(Len(sHex) \ 2 - 1)
For iLoop = 0 To Len(sHex) \ 2 - 1
bResult(iLoop) = Val("&H" & Mid(sHex, iLoop * 2 + 1, 2))
Next iLoop
HexToBinArray = bResult
End Function