c# - 将进度保存到文本文件 C#

标签 c#

我这里有一个问题...所以这就是我想做的: 我有一个程序可以保存有关用户进度的信息,例如:调用、已应答的调用……用户每天运行该程序并将信息保存到文本文件中。所以问题是,当用户点击“保存”按钮时,它会添加当天的新统计数据。但是如果用户在那一天保存了 2 次,我希望修改这些数据。 我想做的是创建一个新文件,用于保存上次保存的时间,如果日期不相同,则追加到文件,否则修改当天保存的现有文件。

到目前为止我所做的是:

string input3 = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
StreamWriter t,tw;
if(File.Exists(filename))
{
    tw=File.AppendText(filename);
    t = new StreamWriter("lasttimesaved.txt");
    t.WriteLine(input3);
}
else
{
    tw=new StreamWriter(filename);
    t = new StreamWriter("lasttimesaved.txt");
    t.WriteLine(input3);
}

tw.WriteLine();
tw.Write("Stats for Name ");
tw.Write(input);
tw.Write("_");
tw.WriteLine(input3);
tw.WriteLine();
tw.Write("Total Calls: "); tw.WriteLine(calls);
tw.Write("Total Answered: "); tw.WriteLine(answ);
tw.Close();

现在我唯一不知道该怎么做的是如何首先添加一个检查实例来查看用户是否已经保存了今天的信息并修改现有数据。

就像:

try
{
    using (StreamReader sr = new StreamReader("lasttimesaved.txt"))
    {
        String line = sr.ReadToEnd();
    }
}
catch (Exception e)
{
    Console.WriteLine("The file could not be read:");
    Console.WriteLine(e.Message);
}

if(String.Compare(input3,line) == 0)
{
    // that's where I need to modify the existing data.
}
else 
{
    // do the code above
}

谁能帮我修改当前记录的数据而不丢失以前的记录。 在文本文件中是:

Name_2013-11-26 的统计数据

Total Calls: 25
Total Answered: 17

Stats for Name_2013-11-27

Total Calls: 32
Total Answered: 15

Stats for Name_2013-11-28

Total Calls: 27
Total Answered: 13

最佳答案

我会说使用 XML,它仍然可以在没有代码的情况下读取和修改,并且您有一些巧妙的方法来使用代码修改文件。

使用 XML,您可以轻松地查询文件以查看文件中是否已经提到了今天的日期,如果是,您可以编辑该节点,如果没有,您可以轻松地附加一个节点。

要将节点附加到 xml 文件,我会查看此链接: C#, XML, adding new nodes

关于c# - 将进度保存到文本文件 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20259957/

相关文章:

c# - 当任务正在运行并且它的窗口关闭时会发生什么?

C#更新数据库错误

c# - WP7 GestureListener 上图像宽度/高度的限制

javascript - 为什么 C# 解析的 DateTime 提前 7 小时?

c# - 为什么我需要将模型传递给 View ?

c# - 如何将字符串列表转换为 double ?

c# - DateTime 与 LINQ 中格式的比较

c# - 将 Windows 运行时组件与 Javascript UWP 应用程序一起使用时出现 "Unknown Runtime Error"

c# - 如何在 C# Windows 窗体应用程序中的 VLC 点网窗体中添加搜索栏

c# - 对于具有 12K+ 类的 C# 解决方案,SonarQube 报告没有依赖项、0 缠结索引?