编辑文本文件中的单行

时间:2014-10-17 06:38:16

标签: c# vb.net

想象一下,您遇到了一个大文本文件,例如HTML,并且只想编辑此文件中的一行代码。
标准方法是首先读取everthing,然后将everthing(包括已更改的文本)写回单独的文件,这在此用例中效率不高。

我想使用类似的方法在编辑器中打开文件,找到您需要的行,然后编辑此特定行。

是否有任何FileIO允许实际编辑/替换而不是普通的附加或创建?

编辑: 到目前为止,我的想法正是Rahul Singh在下面给出的例子。 但正如所提到的,如果我想到这种方法,如果你只想编辑一行甚至几行,它似乎效率不高。在我提出问题的实际问题中,该文件是一个HTML文件,其中要插入一个额外的表行。但我认为这个用例对所有包含纯文本的文件都很有意思

2 个答案:

答案 0 :(得分:1)

您可以使用HTML Agility Pack

  

这是一个灵活的HTML解析器,可构建读/写DOM并支持   普通的XPATH或XSLT.It是一个.NET代码库,允许您解析网络"   HTML文件。

例如,此代码修复了HTML文件中的所有href:

 HtmlDocument doc = new HtmlDocument();
 doc.Load("file.htm");
 foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
 {
    HtmlAttribute att = link["href"];
    att.Value = FixLink(att);    //FixLink() is your custom method
 }
 doc.Save("file.htm");

答案 1 :(得分:0)

首先请分享您到目前为止所尝试的内容,因为我们对您的textFile包含的数据一无所知, 首先在streamreader中读出文件并将其存储到字符串然后执行string.replace并进行编辑,您还可以使用拆分选项并通过包含函数进行检查来进行编辑。 并且你总是可以通过XSLT选项,但为此你需要使用XPath来选择