为了账号安全,请及时绑定邮箱和手机立即绑定

在文本文件中搜索一个单词,然后打印它存在的行

在文本文件中搜索一个单词,然后打印它存在的行

C#
白衣染霜花 2021-08-22 17:43:56
我想在文本文件中搜索特定关键字,比如 companyName。程序将搜索单词,然后打印该单词所在的行,然后也会打印该单词下方的行。它应该对单词所在的每一行都这样做。IE 打印所有具有 companyName 的行及其下方的行。(理想情况下,这将写入 .txt 文件)--->程序打印公司名称:Tesco地址:31, stern street(紧接下面的线路)--编辑--这是我现在正在工作的代码,供其他可能觉得有用的人使用:static void Main(string[] args)    {        var sb = new StringBuilder();        var lines = File.ReadAllLines(@"C:\file.txt");        for (int i=0; i<lines.Length; i++)        {            var line = lines[i];            if (line.IndexOf("companyName", StringComparison.CurrentCultureIgnoreCase) >= 0)            {                var nextLine = lines[i + 1];                sb.AppendLine(line);                sb.AppendLine(nextLine);            }        }        File.WriteAllText(@"C:\out.txt", sb.ToString());}
查看完整描述

2 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

您可以尝试在这些行中进行一些操作,其中变量 filePath 包含文件的路径,而 keyWord 包含您要查找的字符串:


        var keyWord = "companyName";

        var hasKeyword = false;

        foreach (var line in System.IO.File.ReadAllLines(filePath))

        {

            if (line.Contains(keyWord))

            {

                Console.WriteLine(line);

                hasKeyword = true;

                continue;

            }

            if (hasKeyword)

            {

                Console.WriteLine(line);

                hasKeyword = false;

            }

        } 


查看完整回答
反对 回复 2021-08-22
?
长风秋雁

TA贡献1757条经验 获得超7个赞

也许像这样?


using (var sr = new StreamReader(inFile))

   using (var sw = new StreamWriter(OutFile))

      while (!sr.EndOfStream)

      {

          var line1 = sr.ReadLine();

          if (line1.IndexOf(SearchString, StringComparison.OrdinalIgnoreCase) >= 0)

             continue;


          sw.WriteLine(line1);

          sw.WriteLine(sr.ReadLine());

      }

免责声明:未经测试,没有错误检查,我不对您使用此代码致残或以其他方式伤害的人负责


查看完整回答
反对 回复 2021-08-22
  • 2 回答
  • 0 关注
  • 214 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信