【问题标题】:I want to delete a record from a file in C#我想从 C# 中的文件中删除一条记录
【发布时间】:2011-12-26 12:23:22
【问题描述】:

我正在开发一个 ATM 软件系统,在该系统中我在文本文件中维护我的数据库。我想从文本文件中删除一条记录。我的记录在文本文件中逐行保存。我从互联网上找到了更新代码,但我想以这种方式删除帐户。请帮帮我。

StringBuilder newFile = new StringBuilder();
string temp = "";
string[] file = File.ReadAllLines(@"C:\Documents and Settings\john.grove\Desktop\1.txt");
foreach (string line in file)
{
    if (line.Contains("string"))
    {
        temp = line.Replace("string", "String");
        newFile.Append(temp + "\r\n");
        continue;
    }
    newFile.Append(line + "\r\n");
}

File.WriteAllText(@"C:\Documents and Settings\john.grove\Desktop\1.txt", newFile.ToString());

【问题讨论】:

  • 对于较大的文件会非常低效。这就是为什么大多数人将他们的数据库存储在数据库中。
  • 我的要求是文本文件处理。
  • 如果机器在 WriteAllText 操作中途关闭,您将丢失数据。您确定要编写自己的持久层而不是使用嵌入式数据库吗?
  • 您必须使用文本文件吗?似乎有很多更好的选择。
  • 再次感谢您和您的 ATM 作业

标签: c# file-io io


【解决方案1】:

你最好流式传输这个:

string lines = File.ReadLines(path)
                   .Select(line => line.Replace("string", "String"));
File.WriteAllLines(newPath, lines);

【讨论】:

  • 然后可能将 newPath 重命名为 [old]Path
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 2013-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多