我正在尝试进行一些RFID编码,其中我将以十六进制(0 - > F)键入16位数字到我已经创建的表格中的文本框中。我的问题是如何将.Text格式转换为可转换为Byte()格式的内容或任何转换为该格式的子步骤。
经过大量研究和大量重复错误后,我认为我使用的任何函数都不是将每个字符视为一个数字而是将整个文本视为一个值。因此,我尝试将其解析为单个字符,但仍然不允许我这样做。
我试过了:
System.Convert.To___{anything, byte, integer, decimal,string}__(Next_TID.Text
*or that same thing converted into a string* })
Dim text As New System.Text.StringBuilder(textinfo.Length \ 2)
for i As integer = 0 To textinfo.Length - 2 Step 2
text.Apend(Chr(Convert.ToByte(textinfo.Substring(i,2), 16)))
Next
这不断给我一个错误,说它找不到任何可识别的数字,我认为这意味着它将整个事物视为一个大数字而不是单个数字。
我在两周前没有使用vb进行编码,但是有很多练习程序和研究,我不知道我做错了什么。 (对不起,如果代码示例没有显示正确的话)
答案 0 :(得分:0)
这应该有用 - 试一试:
代码构建了字节值数组和二进制数字字符串数组(仅用于演示)。
Dim s As String = TextBox1.Text
Dim bytes As New List(Of Byte)
Dim byteStrings As New List(Of String)
For i As Integer = 0 To s.Length - 2 Step 2
Dim hexDigit As Byte = Convert.ToByte(s.Substring(i, 2), 16)
bytes.Add(hexDigit)
byteStrings.Add(Convert.ToString(hexDigit, 2).PadLeft(8, "0"))
Next
Dim output As String = String.Join("-", byteStrings)
MsgBox(output)
字节值只是数字,如果没有明确说明,就无法从中获取二进制字符串。这是通过Convert.ToString(SomeNumericValue, 2)
完成的。
此外,如果您不需要-
垫片,您可以执行以下操作:
Dim hexValue As Integer = Convert.ToInt32(TextBox1.Text, 16)
MsgBox(Convert.ToString(hexValue, 2))