如何覆盖文本文件上的特定行

时间:2010-06-03 11:54:11

标签: c# string text

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

这是我阅读文件的方式:

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的行。

我不太确定我该怎么做。你能借给我一个手吗? 非常感谢你。

3 个答案:

答案 0 :(得分:2)

不要把它想象为覆盖文件中的行,就像你现在这样做并将它全部加载到List中,然后循环浏览Ep直到找到你需要的部分,删除列表中要覆盖的所有项目,只需跟踪索引,并将Insert新行放入该索引中。

然后将Ep写入临时文件,删除原始Ep文件并将临时Ep文件重命名为原始名称。

在内存中以漂亮的结构进行操作比在文件中操作要容易得多,如果你有电源故障,或者用一半的书面编辑就不会破坏文件。

答案 1 :(得分:1)

我会阅读这两个文本文件,操纵并重写它们,而不是试图替换并做各种各样的欺骗和巫术。

答案 2 :(得分:0)

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