我正在寻找一个特定关键字的文本文件,例如companyName。
程序将搜索单词,然后打印该单词所在的行,然后也将打印该单词下方的行。它应该对单词所在的每一行都执行此操作。 I.E打印具有companyName及其下一行的所有行。 (最好将其写入.txt文件)
---> 程序打印
companyName:Tesco
地址:斯特恩街31号(位于下面的行)
-编辑-
以下是我现在可以使用的代码,可能对其他人有用:
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());
}
答案 0 :(得分:0)
也许是这样吗?
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());
}
免责声明:未经测试,不进行错误检查,对于您致残的人或对此代码造成伤害的人,我不承担任何责任
答案 1 :(得分:0)
您可以尝试以下方法,其中变量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;
}
}