在文本文件中搜索特定单词并附加整行

时间:2014-12-19 15:04:55

标签: c# string text append text-files

我有一个包含7个列的文本文件。列总是相同的有时可以是7或更多。我的文本文件为tab delimited 。 所以我想知道如何设置搜索文本文件中可用的所有列并删除整行。

目前,我正在为each columns search and delete the file 撰写单一功能。我需要一个通用的功能来搜索整个文本文件并附加行

代码:

 public void stack()
    {
        string old;
        string iniPath = Application.StartupPath + "\\list.ini";
        bool isDeleteSectionFound = false;
        List<string> deleteCodeList = new List<string>();
        using (StreamReader sr = File.OpenText(iniPath))
        {
            while ((old = sr.ReadLine()) != null)
            {
                if (old.Trim().Equals("[DELETE]"))
                {
                    isDeleteSectionFound = true;
                }
                if (isDeleteSectionFound && !old.Trim().Equals("[DELETE]"))
                {
                    deleteCodeList.Add(old.Trim());
                }
            }
        }

        StringBuilder sb = new StringBuilder();
        using (var reader = new StreamReader(File.OpenRead(textBox1.Text)))
        {
            //;

            List<string> data = new List<string>();
            while (!reader.EndOfStream)
            {
                var line = reader.ReadLine();
                var values = line.Split('\t');

                if (values.Contains(deleteCodeList))// getting that error
                    continue;

                //
                data.Add(string.Join("\t", values));

            }
        }
        File.WriteAllText(textBox1.Text, sb.ToString());
    }

1 个答案:

答案 0 :(得分:0)

这是一个简单的应用程序控制台,它读取文件分割行并搜索字符串。 如果找到一个字符串,则继续将该行添加到数组中。

using System.IO;
using System.Linq;

static void Main(string[] args)
{
     var reader = new StreamReader(File.OpenRead(@"C:\test.ini"));

        List<string> data = new List<string>();
        while (!reader.EndOfStream)
        {
            var line = reader.ReadLine();
            var values = line.Split('\t');

            if (values.Contains("REMOVE"))
                continue;

            //
            data.Add(string.Join("\t",values));

        }

        //Inside data you have all the lines without the removed. You can rewrite
        //to other file 


}

打开并阅读该文件的代码段取自此question

测试文件:

223431  121232112   13122   TEST
322323  1232332 1233123 2311231 123121
232323  REMOVE  123121  12123211    121212