【问题标题】:How to overwrite specific lines on text files如何覆盖文本文件中的特定行
【发布时间】:2015-08-22 01:41:14
【问题描述】:

我有两个文本文件。我想复制第一个文本文件中的特定部分并将其替换为第二个文本文件的一部分。

这就是我阅读文件的方式:

List<string> PrevEp = File.ReadAllLines(string.Format(@"{0}naruto{1}.ass", url, PrevEpNum)).ToList();
List<string> Ep = File.ReadAllLines(string.Format(@"{0}naruto{1}.ass", url, EpNum)).ToList();

PrevEp 中我需要的部分:从开始到遇到包含Creditw,,0000,0000,0000 的行。

我想在Ep 中覆盖的部分:从开头到正好是Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text 的那一行。

我不太确定我该怎么做。你能帮我一把吗? 非常感谢。

【问题讨论】:

    标签: c# string text


    【解决方案1】:

    不要认为它是覆盖文件中的行,就像你现在做的那样,将它全部加载到Lists,然后循环遍历 Ep 直到找到你需要的部分,删除所有列表中要覆盖的项目,只需跟踪索引和Insert 将新行添加到该索引中。

    然后你把Ep写入一个临时文件,删除原来的Ep文件,把临时Ep文件重命名为原来的名字。

    在内存中以良好的结构进行操作比在文件中进行操作要容易得多,而且如果您遇到电源故障或其他问题,您不会通过一半的写入编辑来破坏文件。

    【讨论】:

      【解决方案2】:

      我会阅读这两个文本文件,操作和重写它们,而不是尝试替换和做各种诡计和巫术。

      【讨论】:

        【解决方案3】:

        您是否在查找行或将最终文件放在一起时遇到问题?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-24
          • 1970-01-01
          • 1970-01-01
          • 2021-07-19
          • 1970-01-01
          • 1970-01-01
          • 2020-12-28
          • 1970-01-01
          相关资源
          最近更新 更多