【发布时间】:2012-04-24 05:23:30
【问题描述】:
例如我有这个:
“是吗?Wo war ich?Ach ja.
">
我需要创建一个仅包含以下内容的新文本文件:
是吗?我战争吗?哎呀。
我有一个像 43mb 这样的大文件,我需要扫描整个文件,只获取以 " 开头并以 <pa>" 结尾的地方,并获取这些标签之间的字符串。
到目前为止我已经完成了这段代码:
private void retrivingTestText()
{
w = new StreamWriter(retrivedTextFile);
string startTag = "\"";
string endTag = "<pa>";
int startTagWidth = startTag.Length;
int endTagWidth = endTag.Length;
string text = "\"Was? Wo war ich? Ach ja.<pa>\">";
int begin = text.IndexOf(startTag);
int end = text.IndexOf(endTag, begin + 1);
string result = text.Substring(begin+1, end-1);
w.WriteLine(result);
w.Close();
}
但现在我需要在一个大文件 43mb xml 文件上制作它。 所以在构造函数中我已经做了 StreamReader r; 和字符串 f; 然后我做了:
r = new StreamReader(@"D:\New folder (22)\000004aa.xml")
f = r.ReadToEnd();
现在我需要将它与上面的代码一起使用来提取大文件中 startTag 和 endTag 之间的所有字符串,而不仅仅是特定的文本。
第二件事我需要创建另一个函数,所以在我进行更改后它会知道将所有提取的文本字符串添加回它之前在 startTag 和 endTag 之间的正确位置
谢谢。
【问题讨论】:
-
您可能想研究正则表达式...它们使这类事情变得更容易。
-
您的数据是有效的 XML 吗?您可以使用 XmlReader 来处理文件吗?见msdn.microsoft.com/en-us/library/9d83k261.aspx
标签: c#