在VB中将字符串转换为十六进制

时间:2014-08-29 08:24:01

标签: string hex

在VB中,我使用IO.File.Readline()方法逐行读取文件。该文件的每一行都包含一个类似于以下

的字符串

":1A2C003F4EDCFE3A2F5D66 \ r \ n"

现在我读到的每一行,我想做的就是 1.删​​除":"和" \ r \ n"从线路 2.将值配对为字节,例如:" 1A 2C 00" ...(现在该线路为" 1A 2C 00 3F 4E DC FE 3A 2F 5D 66")
3.将所有字节一起添加,并查找结果是否为零。例如:(1A + 2C + 00 + 3F + 4E + DC + FE + 3A + 2F + 5D + 66)= 0?

我该怎么办?

到目前为止,我已经完成了

While endofstream = False
    stringReader = fileReader.ReadLine()
    If stringReader.StartsWith(":") Then
        stringReader = stringReader.Replace(vbCr, "")
        stringReader = stringReader.Replace(":", "")

    MsgBox(stringReader)

1 个答案:

答案 0 :(得分:0)

但要小心。你不应该有4个字符的部分? 1A2C 003F 4EDC ......

您所要做的就是将十六进制转换为十进制数并将它们相加

Dim sum As Integer
For index As Integer = 0 To stringReader .Length-1 Step 2
    ' we take 2 chars
    ' we use ToInt32 method http://msdn.microsoft.com/en-us/library/f1cbtwff.aspx
    sum += Convert.ToInt32(stringReader.Chars(index) & stringReader.Chars(index+1), 16)
Next

' use sum

就我而言,结果是985