我的文本文件包含以下信息
Names Date Of Birth Date Of Joining
Bella Swan 01/18/1986 12/12/2012
Edward Cullen 10/13/1983 05/08/2013
Jacob Black 10/18/1981 12/12/2012
Carlisle Cullen 05/08/1953 12/16/1998
Alice Cullen 01/18/1986 09/09/2009
如果用户输入日期,则应提取与日期相关的所有记录。 用户输入日期01/18/1986 显示屏显示以下详细信息:
Bella Swan 01/18/1986 12/12/2012
Alice Cullen 01/18/1986 09/09/2009
如果用户输入日期12/12/2012
Bella Swan 01/18/1986 12/12/2012
Jacob Black 10/18/1981 12/12/2012
我需要遵守的准则是不使用锯齿状数组,linq,List,Exception等。
我不知道如何获得上述输出。 我试过了,但它没有用。
static void Main()
{
Console.WriteLine("Enter The Date");
string Date = Console.ReadLine();
string line = null;
FileStream fs = new FileStream("Scheduler.txt", FileMode.Open,FileAccess.Read);
StreamReader reader = new StreamReader(fs);
{
while ((line = reader.ReadLine()) != null)
{
if (line.Contains(Date))
{
Console.WriteLine(Date);
break; // then stop
}
}
}
}
答案 0 :(得分:3)
你为什么这样做?
Console.WriteLine(Date);
您需要打印整行:
Console.WriteLine(line);
你为什么这样做?
break; // then stop
在你阅读整个文件之前,你过早地停止了;将其删除,以便继续循环,直到到达文件末尾。
其他可能的问题:您是否检查过以确保您的输入实际上是有效日期?一种方式是这样的:
DateTime valid;
if(!DateTime.TryParse(Date, "MM/dd/YYYY", CultureInfo.InvariantCulture)) {
// handle invalid date format
}
除此之外,这实际上是一个非常好的开始。你的方法正确。
然而,你提出的问题非常严重。下一次,说明您遇到的实际具体问题。您甚至可能会发现,阐明问题将有助于您更好地理解自己的代码,以便您自己找到错误。例如,如果你说过:
我有这段代码,但它只打印用户输入的日期然后停止....
你可能会查看你的代码,并想知道为什么会这样。然后你可能已经注意到你有Console.WriteLine(Date)
而且已经哈哈了!也许,也许,就像break
一样。