【问题标题】:Is there a way to add data into a specific row c#有没有办法将数据添加到特定行 c#
【发布时间】:2020-04-29 01:50:16
【问题描述】:

我有一个 csv 文件,其中包含类似

的数据

1、名字、姓氏、出生日期

2、名字、姓氏、出生日期

3、名字、姓氏、出生日期

4、名字、姓氏、出生日期

我想知道我是否可以用 3, John, Smith, 01/12/1999 替换第三行。我已经将它保存在一个字符串中,我只需要能够覆盖特定的行,在本例中为第 3 行。谢谢

【问题讨论】:

  • 非常感谢您包含有关您所做的事情和尝试的事情的代码 sn-p。
  • 断章取意,我目前正在尝试以上述格式编辑 csv 文件中的数据。到目前为止,我所做的是编辑特定行并将其保存为字符串,现在我只是想将其添加回 csv 文件中。但是,如果我使用 File.WriteAll 文本或类似的东西,数据将被放在 csv 文件的末尾,而我希望数据进入特定行(编辑第 3 行我想覆盖第 3 行数据)

标签: c# csv


【解决方案1】:

您想要的似乎(几乎)与csv 无关,但可以通过一些字符串操作来完成。

private string yourFilePath;

private void EditRow(int rowNum, string edit)
{
    string[] rowsArray = IO.File.ReadAllLines(yourFilePath);
    rowsArray[rowNum] = edit;
    IO.File.WriteAllLines(yourFilePath, rowsArray);
}

据我所知,不打开文件就无法编辑文件的特定行。所以上面的代码只是打开它,编辑特定的行,然后覆盖整个文件。

另请参阅:System.IO.File

【讨论】:

  • 除非文件很小,否则一次性读取整个文件并覆盖整个文件通常是个坏主意。最好只保存到临时文件,然后删除并重命名,以确保您能够在删除旧文件之前成功写入更新。
猜你喜欢
  • 1970-01-01
  • 2020-03-20
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多