【问题标题】:How can i extract a string text from a file using loop while all over the file?如何在整个文件中使用循环从文件中提取字符串文本?
【发布时间】: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 之间的正确位置

谢谢。

【问题讨论】:

标签: c#


【解决方案1】:

您可以采用以下方法来提取数据。

string word = "\"Was? Wo war ich? Ach ja<pa>\"Jain\"Romil<pa>\"";
string[] stringSeparators = new string[] { "<pa>\"" };
string ans=String.Empty;
string[] text = word.Split(stringSeparators, StringSplitOptions.None);

foreach (string s in text)
{
    if (s.IndexOf("\"") >= 0)
    {
        ans += s.Substring(s.IndexOf("\"")+1);
    }
}
return ans;

【讨论】:

    【解决方案2】:

    有一篇关于如何使用正则表达式删除 HTML 标记的类似帖子。这是link

    还有一个你可以调整的,here.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多