C# 以十六进制格式读取文件

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

这完全是一个我找不到答案的问题。我有一个包含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)
    {
        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十六进制以什么方式表示?