我正在制作一个高分系统,但我将新时间与已保存在文本文件中的时间进行比较时遇到问题。
我可以使用StreamWriter节省时间,但是当我使用StreamRreader读取文件时,我无法将其与新时间进行比较,因为新时间是int
而我正在读取文本文件字符串的计时器。我尝试将字符串更改为int
,但我无法找到有效的方法。
提前谢谢!
我用来阅读文字的代码:
string[] test = new string[5];
StreamReader SR = new StreamReader(@"test.txt");
for (int i = 0; i < 10; i++)
{
test[i] = SR.ReadLine();
}
答案 0 :(得分:1)
文本文件的内容是什么?您只能将字符串内容存储在文本文件中,因此您必须读取文件的内容,然后读取.Parse或.TryParse以将字符串转换为所需的类型(例如,Int)
答案 1 :(得分:1)
实际上你的代码会抛出一个IndexOutOfRangeException异常,因为你初始化了一个包含5个元素的字符串数组,但是你循环并尝试将元素添加到数组10次。
目前还不清楚文本文件中包含的内容。因此,这是如何在文本文件中编写,读取和解析日期时间的简单方法:
string date = DateTime.Now.ToString();
// Write the string to a file.
System.IO.StreamWriter file = new System.IO.StreamWriter("c:\\folder\\test.txt");
file.WriteLine(date);
file.Close();
// Read file
DateTime dateTime;
string firstRowFromFile = File.ReadLines("c:\\folder\\test.txt").First();
if (DateTime.TryParse(firstRowFromFile, out dateTime))
{
// right datetime format
}
else
{
// wrong datetime format
}
在现实生活中,这段代码也应该使用try / catch块来正确处理异常。
答案 2 :(得分:0)
在比较之前尝试解析字符串:
类似的东西:
StreamReader SR = new StreamReader(@"test.txt");
for (int i = 0; i < 10; i++)
{
test[i] = SR.ReadLine();
DateTime time = DateTime.ParseExact(test[i], "HH:mm:ss", CultureInfo.InvariantCulture);
}
答案 3 :(得分:0)
您可以尝试将ReadLine()的结果转换为int。
Convert.ToInt32(SR.ReadLine);
假设它就像你说的那样。