使用数据绘制图表时删除文件的最后一行c#

Delete last line of file, when using the data to draw a chart c#

当我试图删除我的 csv 文件的最后一行时,当我试图绘制数据图表时,我遇到了麻烦。 我的文件包含很多数据,我通过以下代码获取:

public void StreamOpen()
    {
        Stream stream;

        OpenFileDialog getDialog = new OpenFileDialog();

        getDialog.Filter = "csv File|*.csv";
        getDialog.Title = "Get a .csv file";
        if (getDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            if ((stream = getDialog.OpenFile()) != null)
            {
                strFileName = getDialog.FileName;
                string[] filetext = File.ReadAllLines(strFileName);
            }
            stream.Flush();
        }
    }

    public void OpenFile()
    {
        if (!File.Exists(strFileName))
        {
            ListA();
            ListB();
        }
        if (strFileName != null)
        {
            var reader = new StreamReader(File.OpenRead(strFileName));
            while (!reader.EndOfStream)
            {
                var line = reader.ReadLine();
                var values = line.Split(';');
                UpdateChart();

                listA.Add(values[0]);
                listB.Add(values[1]);
            }
        }

            ListA();
            ListB();
    }

问题是,在我文件的最后一行,我保存了一个像

这样的文本

"Count of movements" + value

,我想在绘制图表时跳过这个值,而是想在文本框中显示该值。 现在发生错误,listA 和 listB 不一样,我知道为什么,因为最后一行被视为 listA 的一部分。

希望你能帮我删除最后一行,并帮助我展示如何在文本框中保存该值。

文本文件中的输出:

09:03:28 ; 0 
09:03:29 ; 1 
09:03:30 ; 0 
09:03:31 ; 0 
Count of movements 2

这种方法怎么样:

string[] values = line.Split(';');
if(values.Length != expected_column_count) // then ignore


编辑

或者如果不需要的行有其他 特殊之处,例如它总是以相同的文本开头:

if(line.StartsWith(unwanted_prefix)) // then ignore

将您的代码更改为此

while (!reader.EndOfStream)
        {
            var line = reader.ReadLine();
            if (line.StartsWith("Count")) 
              break;
            /....
        }

如果最后一行以特定字符串开头则跳过