C#信号窗口数据TXT格式保存
C#信号窗口数据TXT格式保存
开发一个项目,读取温度信号或者是读取热电偶电压信号转变成温度信号,对温度变化对工程的影响进行分析。这其中需要把信号进行窗口放大,然后保存。二话不说,上这一段代码。
信号放大窗口的数据保存C#代码
var min = Chart1.ChartAreas[0].AxisX.ScaleView.ViewMinimum;
var max = Chart1.ChartAreas[0].AxisX.ScaleView.ViewMaximum;
if (Convert.ToUInt16(max) < ThermoData.Len[0])
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = " TXT文件 | *.txt | CSV文件 | *.csv ";
if (sfd.ShowDialog() == DialogResult.OK)
{
FileStream fs = new FileStream(sfd.FileName, FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
string data = "TRTR" + "\r\n";
data += ThermoData.itemname+"\r\n";
for (int pointIndex = Convert.ToUInt16(min); pointIndex < Convert.ToUInt16(max); pointIndex++)
{
data += Convert.ToString(ThermoData.temp0[pointIndex]) + "," + Convert.ToString(ThermoData.temp1[pointIndex]) + "," + Convert.ToString(ThermoData.temp2[pointIndex]) + "," + Convert.ToString(ThermoData.temp3[pointIndex]) + "," + Convert.ToString(ThermoData.temp4[pointIndex]) + "," + Convert.ToString(ThermoData.temp5[pointIndex])+"\r\n";
}
/* + "," +
Convert.ToString(ThermoData.temp5[pointIndex]) + "," + Convert.ToString(ThermoData.temp6[pointIndex]) + "," + Convert.ToString(ThermoData.temp7[pointIndex]) + "," + Convert.ToString(ThermoData.temp8[pointIndex]) + "," +
Convert.ToString(ThermoData.temp9[pointIndex]) + "," + Convert.ToString(ThermoData.temp10[pointIndex]) + "," + Convert.ToString(ThermoData.temp11[pointIndex]) + "," + Convert.ToString(ThermoData.temp12[pointIndex]) + "," +
Convert.ToString(ThermoData.temp13[pointIndex]) + "," + Convert.ToString(ThermoData.temp14[pointIndex]) + "," + Convert.ToString(ThermoData.temp15[pointIndex]) + "," + Convert.ToString(ThermoData.temp16[pointIndex])
*/
sw.WriteLine(data);
sw.Close();
fs.Close();
}
}
}
程序执行后,窗口数据保存很完美,打开TXT文件,一切显示正常,但是有一点,再用项目程序读取该文件,却一直报错。
经多次反复原因分析,发现在TXT文件数据最后一行多了一个换行。把原代码的一部分修改为如下格式,世界一下就美好起来了。
data += "\r\n"+ Convert.ToString(ThermoData.temp0[pointIndex]) + "," + Convert.ToString(ThermoData.temp1[pointIndex]) + "," + Convert.ToString(ThermoData.temp2[pointIndex]) + "," + Convert.ToString(ThermoData.temp3[pointIndex]) + "," + Convert.ToString(ThermoData.temp4[pointIndex]) + "," + Convert.ToString(ThermoData.temp5[pointIndex]);