一个需求:要求解析CSV文件中的数据并转化成公司软件匹配的协议数组,然后显示相应散点图等。
首先我们看CSV的文件格式,
我们要知道CSV文件是由“,” 来分割每个字段的,所以这个需要用到spilt函数。这个时候返回的是一个String数组,在配合StreamReader提供的函数ReadLine这个时候我们就可以得到每一行返回的字符串数组,然后做各种相对应的转化。
打开CSV文件并解析代码如下:
MainWindow.RestartTestEvent?.Invoke();
Microsoft.Win32.OpenFileDialog dialog = new Microsoft.Win32.OpenFileDialog();
dialog.Filter = "csv文件|*.csv";
if (dialog.ShowDialog()== true)
{
List<byte[]> listByte = new List<byte[]>();
StreamReader strReader = new StreamReader(dialog.FileName);
int count = 0;
while (true)
{
byte[] bodyByte = new byte[90];
string str = strReader.ReadLine();
if (count > 0)//为了去掉表头信息
{
if (str == null)
{
break;
}
if (str.Length > 0)
{
string[] strArray = str.Split(',');
bodyByte = ProcessArray(strArray);//这里是我要对每一行进行转化的函数
}
listByte.Add(bodyByte);
}
count++;
}
Protocol.ProcessCsv(listByte);
CsvDo.BeginInvoke(null,null);
strReader.Close();
代码比较粗糙,希望共同进步。