您好我有以下代码:
private void Textparsing()
{
using (StreamReader sr = new StreamReader(Masterbuildpropertiespath))
{
String line;
line = sr.ReadLine();
while ((line != null))
{
if (line.StartsWith("Exec_mail"))
{
ExecmailCheckBox.IsChecked = true;
}
}
}
}
当我使用此功能时,似乎应用程序只是挂起而没有做任何事情。这里的while循环有问题吗?
编辑1:
我现在使用的代码有错误:'System.IO.StreamReader'不包含'Readline'的定义,并且没有扩展方法'Readline'接受'System.IO.StreamReader'类型的第一个参数可能找到了
代码:
private void Textparsing()
{
using (StreamReader sr = new StreamReader(Masterbuildpropertiespath))
{
while (sr.Peek() >= 0)
{
if (sr.Readline().StartsWith("Exec_mail"))
{
ExecmailCheckBox.IsChecked = true;
}
}
}
}
错误在此行中找到:
if (sr.Readline().StartsWith("Exec_mail"))
答案 0 :(得分:0)
使用StreamReader.Peek()确定文件结尾:
private void Textparsing()
{
using (StreamReader sr = new StreamReader(Masterbuildpropertiespath))
{
while (sr.Peek()>=0)
{
if (sr.ReadLine().StartsWith("Exec_mail"))
{
ExecmailCheckBox.IsChecked = true;
}
}
}
}
修改强>
我使用位于D:\ aa.txt的示例文本文件运行代码,其中包含4行文本:
Exec_mail
ABCD
Exec_mail
EFGH
Exec_mail
使用此代码:
private void Textparsing()
{
using (StreamReader sr = new StreamReader(@"D:\aa.txt"))
{
while (sr.Peek() >= 0)
{
if (sr.ReadLine().StartsWith("Exec_mail"))
{
MessageBox.Show("yes");
}
}
}
}
它显示了三次。