C# 以十六进制格式读取文件
这完全是一个我找不到答案的问题。我有一个包含CAN帧的csv文件。框架看起来像这样C# 以十六进制格式读取文件,c#,file-io,hex,C#,File Io,Hex,这完全是一个我找不到答案的问题。我有一个包含CAN帧的csv文件。框架看起来像这样 0.10836,1181,2,8,6d,3d,05,00,28,00,54,12,1 显然这是十六进制。如何从文件中以十六进制而不是ASCII等效形式将其读入C# 我尝试过使用File.ReadAllBytes,如下所示: foreach (byte ByteElement in baFileLineArray) { if (ByteElement == 0x2c) { Conso
0.10836,1181,2,8,6d,3d,05,00,28,00,54,12,1
显然这是十六进制。如何从文件中以十六进制而不是ASCII等效形式将其读入C#
我尝试过使用File.ReadAllBytes,如下所示:
foreach (byte ByteElement in baFileLineArray)
{
if (ByteElement == 0x2c)
{
Console.Write(Environment.NewLine);
}
else
{
Console.Write("{0:x} ", ByteElement);
}
}
byte[]baFileLineArray=File.ReadAllBytes(sFileName)代码>
然后是如下所示的调试输出:
foreach (byte ByteElement in baFileLineArray)
{
if (ByteElement == 0x2c)
{
Console.Write(Environment.NewLine);
}
else
{
Console.Write("{0:x} ", ByteElement);
}
}
将生成以下输出:
我需要的信息被读取为十六进制,而不是作为ASCII字符。例如,第一个from last字段是0x12,第三个from last字段是0x54。不是0x35 0x34
非常感谢
我试过像这样使用File.ReadAllBytes
这是第一个错误。这是一个文本文件-因此您应该将其作为文本文件读取
老实说,如果是CSV,您可能应该研究CSV解析器,这将使您的生活更简单,但您也可以自己做。比如:
foreach (string line in File.ReadLines(filename))
{
string[] part = line.Split(',');
// Deal with each part. Consider using Convert.ToInt32(part, 16)
// to parse a value as hex...
}
使用stringstream的变量。
并在字符串缓冲区中获取一行文件信息
并转换为十六进制
使用此语法StramStringvari时,0.10836十六进制以什么方式表示?