真的是C#的新手。我需要搜索关键字的文本文件。如果在搜索完整个文件后,发现关键字弹出消息框。如果在搜索完整个文件后,找不到关键字弹出消息框。C#在文本文件中搜索
到目前为止,我在下面有这个。问题是它一行一行地读取文件。如果在第一行中未找到关键字,则显示警告“未找到”。然后转到下一行并再次显示“未找到”。等等。我需要脚本来搜索整个文件,然后只显示一次“未找到”。谢谢!
private void SearchButton_Click(object sender, EventArgs e)
{
System.IO.StreamReader file = new System.IO.StreamReader("c:\\test.txt");
String line;
String[] array;
while ((line = file.ReadLine()) != null)
{
if (line.Contains("keyword"))
{
MessageBox.Show("Keyword found!");
}
else
{
MessageBox.Show("Keyword not found!");
}
}
}
因此,只需使用['ReadToEnd'](https://msdn.microsoft.com/en-us/library/system.io.streamreader.readtoend(v = vs.110).aspx)读取整个文件? – UnholySheep
你有什么尝试?您可以考虑不立即显示消息框,但将结果保存在循环后检查的变量中。 – CodeCaster
您应该考虑加载文件并在其中异步搜索(线程,线程池,backgroundworker或更好的异步/等待机制)。 – honzakuzel1989