2014-08-29 249 views
0

在VB中,我正在使用IO.File.Readline()方法逐行读取文件。该文件的每一行包含类似于以下在VB中将字符串转换为十六进制

一个字符串“: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) 
+0

您是否尝试过这么远吗?如果是这样,请分享该代码。 – 2014-08-29 08:26:47

+0

到目前为止,我可以逐行读取文件,并且可以检查行'if line.startswith(“:”)',然后消除行中的“:”和“\ r \ n”。这就是我所能做到的。 – 2014-08-29 08:30:35

+0

粘贴该代码。 – FrEaKmAn 2014-08-29 08:31:03

回答

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

相关问题