C# 将CSV文件导入文本框但格式不正确

C# 将CSV文件导入文本框但格式不正确,c#,csv,hex,C#,Csv,Hex,我想将包含十六进制值的CSV文件的内容添加到文本框中,并将每个字节输出到列表框中 hex.Split(",\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); 单击“添加文件”按钮时,CSV文件的内容会显示在文本框中,每个字节之间用逗号分隔,但当我单击“写入”按钮时,它会引发异常 hex.Split(",\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries

我想将包含十六进制值的CSV文件的内容添加到文本框中,并将每个字节输出到列表框中

  hex.Split(",\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
单击“添加文件”按钮时,CSV文件的内容会显示在文本框中,每个字节之间用逗号分隔,但当我单击“写入”按钮时,它会引发异常

  hex.Split(",\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
系统格式异常,其他不可解析字符位于字符串末尾

  hex.Split(",\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
我看不出这是怎么发生的,因为当其他十六进制值被逗号分隔时,它工作得很好。文本框中的格式完全相同,例如AA、66、FF、EE,但似乎不适用于CSV文件

  private void AddFileSPI_Click(object sender, EventArgs e)
    {
        string AddFile = "";
        DialogResult result = openFile.ShowDialog(); 
        if (result == DialogResult.OK) 
        {
            string file = openFile.FileName;
            try
            {
                AddFile = File.ReadAllText(file);
            }
            catch (IOException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        Value.Text = AddFile;
    }


    private void Write_Click(object sender, EventArgs e)
                {
                    string hex = Value.Text;

                        string[] hex1 = hex.Split(',');
                        byte[] bytes1 = new byte[hex1.Length];

                        for (int j = 0; j < hex1.Length; j++)
                        {
                            bytes1[j] = Convert.ToByte(hex1[j], 16);
                            hexValues1.Add(bytes1[j]);
                            writebuff = hexValues1.ToArray();
                            hexValue = writebuff[x].ToString("X2");
                            WriteHexValues.Items.Add("0x" + hexValue);
                            x++;
                        }
                 }
  hex.Split(",\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
删除空白:

for (int j = 0; j < hex1.Length; j++)
{
    string fieldString = hex1[j].Trim();
    if(string.IsNullOrWhiteSpace(fieldString)) throw ... // or other error handling
    bytes1[j] = Convert.ToByte(hex1[j], 16);
  hex.Split(",\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

应该有助于…

更改十六进制分割',';到

  hex.Split(",\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

也许你的CSV有一些不是十六进制值的数据?将文件内容放在我们可以看到的地方。我自己在excel中制作了它,用于测试,只包含5个十六进制值AA、FF、66、DD、FF。这是我添加CSV文件时文本框中显示的内容。粘贴文件的确切内容。Excel倾向于向其中添加一些标题、额外信息、标题名称等。代码的最后四行是假的:x是什么,应该在循环之外,等等。这可能是问题所在好吧,我如何粘贴文件的确切内容?