本人正在写一个“锂离子成分容上位机软件“”,里面需要用到chart控件,需要读取老师提供的一个文件,并将文件中的数据在chart控件中通过曲线图的形式显示出来,请问需要怎么解决呢?
private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
// fileDialog.Filter = ".hd";
if (fileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = fileDialog.FileName;
BinaryFormatter bf = new BinaryFormatter();
using (FileStream fs = new FileStream(filePath, FileMode.Open))
{
NewChannelInfoData newChannelInfoData = (NewChannelInfoData)bf.Deserialize(fs);
List<string> list = new List<string>();
// NewChannelInfoData newChannelInfoData = new NewChannelInfoData();
list = newChannelInfoData.chlList;
ChannelDataTab channelDataTab = new ChannelDataTab();
for (int i = 0; i < list.Count; i++)
{
string[] ss = list[i].Split('/');
channelDataTab.Aux_data = ss[0].Substring(10);
channelDataTab.ChannelEfficiency = int.Parse(ss[1].Substring(ss[1].IndexOf("=") + 1));
string[] ss2 = ss[2].Split('#');
channelDataTab.Charge_cap = float.Parse(ss2[1]);
channelDataTab.Charge_energy = float.Parse(ss[3].Substring(ss[3].IndexOf("=") + 1));
channelDataTab.CID = ss[4].Substring(ss[4].IndexOf("=") + 1);
channelDataTab.Cycle = ss[5].Substring(ss[5].IndexOf("=") + 1);
channelDataTab.DC_busVolt = float.Parse(ss[6].Substring(ss[6].IndexOf("=") + 1));
channelDataTab.DC_loadCurrent = float.Parse(ss[7].Substring(ss[7].IndexOf("=") + 1));
channelDataTab.DC_outputVolt = float.Parse(ss[8].Substring(ss[8].IndexOf("=") + 1));
channelDataTab.Diff_current = float.Parse(ss[9].Substring(ss[9].IndexOf("=") + 1));
channelDataTab.Diff_volt = float.Parse(ss[10].Substring(ss[10].IndexOf("=") + 1));
string[] ss11 = ss[11].Split('@');
channelDataTab.Discharge_cap = float.Parse(ss11[1]);
channelDataTab.Discharge_energy = float.Parse(ss[12].Substring(ss[12].IndexOf("=") + 1));
channelDataTab.GID = int.Parse(ss[13].Substring(ss[13].IndexOf("=") + 1));
channelDataTab.IsAll = int.Parse(ss[14].Substring(ss[14].IndexOf("=") + 1));
channelDataTab.IsExtra = int.Parse(ss[15].Substring(ss[15].IndexOf("=") + 1));
channelDataTab.Load_temper1 = float.Parse(ss[16].Substring(ss[16].IndexOf("=") + 1));
channelDataTab.Load_temper2 = float.Parse(ss[17].Substring(ss[17].IndexOf("=") + 1));
channelDataTab.Power = float.Parse(ss[18].Substring(ss[18].IndexOf("=") + 1));
channelDataTab.SeqId = int.Parse(ss[19].Substring(ss[19].IndexOf("=") + 1));
channelDataTab.Status_data = ss[20].Substring(ss[20].IndexOf("=") + 1);
channelDataTab.Step_time = float.Parse(ss[21].Substring(ss[21].IndexOf("=") + 1));
channelDataTab.StepName = ss[22].Substring(ss[22].IndexOf("=") + 1);
channelDataTab.StepNum = int.Parse(ss[23].Substring(ss[23].IndexOf("=") + 1));
channelDataTab.StepType = int.Parse(ss[24].Substring(ss[24].IndexOf("=") + 1));
channelDataTab.Sys_Time = ss[25].Substring(ss[25].IndexOf("=") + 1);
channelDataTab.TestId = ss[26].Substring(ss[26].IndexOf("=") + 1);
channelDataTab.TestMode = int.Parse(ss[27].Substring(ss[27].IndexOf("=") + 1));
channelDataTab.TestTime = int.Parse(ss[28].Substring(ss[28].IndexOf("=") + 1));
string[] ss29 = ss[29].Split('%');
channelDataTab.Total_cap = float.Parse(ss29[1]);
channelDataTab.Total_energy = float.Parse(ss[30].Substring(ss[30].IndexOf("=") + 1));
channelDataTab.WorkType = int.Parse(ss[31].Substring(ss[31].IndexOf("=") + 1));
}
}
}
}
文件读取出来后无法再chart控件上显示出来,请问怎么解决?