在编写新文件时,仅在第一个实例发生后删除行的实例

时间:2014-05-20 09:17:20

标签: c# visual-studio-2010 text streamwriter

对于我可怕的主题标题感到抱歉,但我想不出另一种定义它的方法...... 我正在读取一个文本文件,然后错过了特定的行,然后将我要保留的行写入新文件...我想保留文件中默认的列标题,但它们会在页面下多次出现 - 我只想要它们一次在顶部,我需要一些帮助,我将需要放入我的代码中删除第一个读取后的所有标题实例...这是我的代码到目前为止工作正常我想要什么 - 给你一些背景......

            string line = null;
            StringBuilder sb = new StringBuilder();
            string lineDelete = "";
            string lineData = "#";
            string copy = "rcpy"; 
            string cp = "vvcp";
            string dash ="-------";
           string total = "total";

            // Read the file and display it line by line.
            using (System.IO.StreamReader file = new System.IO.StreamReader(textBox1.Text))
            {
                using (System.IO.StreamWriter writer = new System.IO.StreamWriter(@"C:\test3.txt"))
                {
                    while ((line = file.ReadLine()) != null)
                    {
                        line = line.Trim();

                        if (line.Contains(lineData))

                            continue;

                        if (line.Contains(copy))
                            continue;

                        if (line.Contains(cp))
                            continue;

                        if (line.Contains(dash))
                            continue;

                        if (line.Contains(total))
                            continue;

                        else
                            writer.WriteLine(line);

1 个答案:

答案 0 :(得分:0)

您可以使用StringBuilder实例来形成结果(要在开头添加行,您应该使用Insert方法,第一个参数设置为0,第二行添加:http://msdn.microsoft.com/en-us/library/7tyt41s0(v=vs.110).aspx)。

如果标题可能会在文件中出现几次,则可以跟踪是否已将其添加到bool vraiable中。

在您形成结果后,您可以将其保存到文件:

using (StreamWriter outfile = new StreamWriter(@"c:\test3.txt"))
{
    outfile.Write(sb.ToString());
}