2014-09-25 70 views
1

我想要做一些RFID編碼,我打算在窗體中的文本框中鍵入一個十六進制數字(0 - > F)的16位數字我已經創建。我的問題是,如何將該.Text格式轉換爲可以轉換爲Byte()格式的東西,或者是轉換爲該格式的子步驟。將輸入從文本框轉換爲字節()在vb

經過大量的研究和大量的重複性錯誤,我認爲我使用的任何函數都不會將每個字符視爲單個數字,而是將整個文本視爲值。因此我嘗試將其解析爲單個字符,並且仍然不允許我這樣做。

我曾嘗試:

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

這應該工作 - 試試看:
該代碼構建字節值和二進制數字串(僅供演示)的數組。

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)) 
+0

感謝您的回覆這麼快,這工作。我想我試圖將文本視爲一個對象而不是文本。 – 2014-09-25 17:18:44