在c#

时间:2017-06-10 20:51:41

标签: c#

我正在制作一个高分系统,但我将新时间与已保存在文本文件中的时间进行比较时遇到问题。 我可以使用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();
}

4 个答案:

答案 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);

假设它就像你说的那样。