📄 mdl2.bas
字号:
Next
For Mr = 33 To 40
DataMatrix(Mr, Mc) = Mid(BinString2, 41 - Mr, 1)
Next
Next Mc
For Mc = 21 To 40
String4 = Mid(instring(2), (Mc - 21) * 8 + 1, 4)
String2 = Mid(instring(2), (Mc - 21) * 8 + 5, 2)
ValString4 = StringToVal(String4) '转化为10进制数值
ValString2 = StringToVal(String2)
HexString4 = Hex(ValString4)
If Len(HexString4) <> 8 Then '调整为数
Select Case Len(HexString4)
Case 1
HexString4 = "0000000" + HexString4
Case 2
HexString4 = "000000" + HexString4
Case 3
HexString4 = "00000" + HexString4
Case 4
HexString4 = "0000" + HexString4
Case 5
HexString4 = "000" + HexString4
Case 6
HexString4 = "00" + HexString4
Case 7
HexString4 = "0" + HexString4
End Select
End If
HexString2 = Hex(ValString2)
If Len(HexString2) <> 2 Then '调整为数
HexString2 = "0" + HexString2
End If
'调整字符排列顺序
HexString4Reverted = Mid(HexString4, 2, 1) + Mid(HexString4, 1, 1) + Mid(HexString4, 4, 1) + Mid(HexString4, 3, 1) + Mid(HexString4, 6, 1) + Mid(HexString4, 5, 1) + Mid(HexString4, 8, 1) + Mid(HexString4, 7, 1)
HexString2Reverted = Mid(HexString2, 2, 1) + Mid(HexString2, 1, 1)
BinString4 = HexStringToBinString(HexString4Reverted) '转化为2进制数值
BinString2 = HexStringToBinString(HexString2Reverted)
For Mr = 1 To 32 '填充数组
DataMatrix(Mr, Mc) = Mid(BinString4, 33 - Mr, 1)
Next
For Mr = 33 To 40
DataMatrix(Mr, Mc) = Mid(BinString2, 41 - Mr, 1)
Next
Next Mc
'处理第二个方案表
For Mc = 1 To 20
String4 = Mid(instring(3), (Mc - 1) * 8 + 1, 4)
String2 = Mid(instring(3), (Mc - 1) * 8 + 5, 2)
ValString4 = StringToVal(String4) '转化为10进制数值
ValString2 = StringToVal(String2)
HexString4 = Hex(ValString4)
If Len(HexString4) <> 8 Then '调整位数
Select Case Len(HexString4)
Case 1
HexString4 = "0000000" + HexString4
Case 2
HexString4 = "000000" + HexString4
Case 3
HexString4 = "00000" + HexString4
Case 4
HexString4 = "0000" + HexString4
Case 5
HexString4 = "000" + HexString4
Case 6
HexString4 = "00" + HexString4
Case 7
HexString4 = "0" + HexString4
End Select
End If
HexString2 = Hex(ValString2)
If Len(HexString2) <> 2 Then '调整为数
HexString2 = "0" + HexString2
End If
'调整字符排列顺序
HexString4Reverted = Mid(HexString4, 2, 1) + Mid(HexString4, 1, 1) + Mid(HexString4, 4, 1) + Mid(HexString4, 3, 1) + Mid(HexString4, 6, 1) + Mid(HexString4, 5, 1) + Mid(HexString4, 8, 1) + Mid(HexString4, 7, 1)
HexString2Reverted = Mid(HexString2, 2, 1) + Mid(HexString2, 1, 1)
BinString4 = HexStringToBinString(HexString4Reverted) '转化为2进制数值
BinString2 = HexStringToBinString(HexString2Reverted)
For Mr = 1 To 32 '填充数组
DataMatrix1(Mr, Mc) = Mid(BinString4, 33 - Mr, 1)
Next
For Mr = 33 To 40
DataMatrix1(Mr, Mc) = Mid(BinString2, 41 - Mr, 1)
Next
Next Mc
For Mc = 21 To 40
String4 = Mid(instring(4), (Mc - 21) * 8 + 1, 4)
String2 = Mid(instring(4), (Mc - 21) * 8 + 5, 2)
ValString4 = StringToVal(String4) '转化为10进制数值
ValString2 = StringToVal(String2)
HexString4 = Hex(ValString4)
If Len(HexString4) <> 8 Then '调整为数
Select Case Len(HexString4)
Case 1
HexString4 = "0000000" + HexString4
Case 2
HexString4 = "000000" + HexString4
Case 3
HexString4 = "00000" + HexString4
Case 4
HexString4 = "0000" + HexString4
Case 5
HexString4 = "000" + HexString4
Case 6
HexString4 = "00" + HexString4
Case 7
HexString4 = "0" + HexString4
End Select
End If
HexString2 = Hex(ValString2)
If Len(HexString2) <> 2 Then '调整为数
HexString2 = "0" + HexString2
End If
'调整字符排列顺序
HexString4Reverted = Mid(HexString4, 2, 1) + Mid(HexString4, 1, 1) + Mid(HexString4, 4, 1) + Mid(HexString4, 3, 1) + Mid(HexString4, 6, 1) + Mid(HexString4, 5, 1) + Mid(HexString4, 8, 1) + Mid(HexString4, 7, 1)
HexString2Reverted = Mid(HexString2, 2, 1) + Mid(HexString2, 1, 1)
BinString4 = HexStringToBinString(HexString4Reverted) '转化为2进制数值
BinString2 = HexStringToBinString(HexString2Reverted)
For Mr = 1 To 32 '填充数组
DataMatrix1(Mr, Mc) = Mid(BinString4, 33 - Mr, 1)
Next
For Mr = 33 To 40
DataMatrix1(Mr, Mc) = Mid(BinString2, 41 - Mr, 1)
Next
Next Mc
'两个方案表融合
For Mr = 1 To 40
For Mc = 1 To 40
DataMatrix(Mr, Mc) = DataMatrix(Mr, Mc) + DataMatrix1(Mr, Mc)
Select Case DataMatrix(Mr, Mc)
Case 0
Case 1
DataMatrix(Mr, Mc) = 2
Case 2
DataMatrix(Mr, Mc) = 1
End Select
Next
Next
MousePointer = 13
End Sub
Public Function HexStringToBinString(Hex As String) As String
Dim i As Integer
Dim Str1, Str2 As String
HexStringToBinString = ""
For i = 1 To Len(Hex)
Str1 = Mid(Hex, i, 1)
Select Case Str1
Case "0"
Str2 = "0000"
Case "1"
Str2 = "0001"
Case "2"
Str2 = "0010"
Case "3"
Str2 = "0011"
Case "4"
Str2 = "0100"
Case "5"
Str2 = "0101"
Case "6"
Str2 = "0110"
Case "7"
Str2 = "0111"
Case "8"
Str2 = "1000"
Case "9"
Str2 = "1001"
Case "A"
Str2 = "1010"
Case "B"
Str2 = "1011"
Case "C"
Str2 = "1100"
Case "D"
Str2 = "1101"
Case "E"
Str2 = "1110"
Case "F"
Str2 = "1111"
End Select
HexStringToBinString = Str2 + HexStringToBinString
Next i
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -