从特定单词WPF开始的richtextbox中的flowdocument中提取行

时间:2015-06-03 07:26:57

标签: c# wpf richtextbox flowdocument

我对wpf很新,我想制作一个文本分析工具。 我已经知道如何将文本导入富文本框并正确格式化,但现在我想运行一个方法,提取以INT或EXT开头的flowdocument中的所有行,并将它们放在列表框中。在winforms中执行此操作似乎比在WPF中更容易。

有人可以指导我吗?

我希望我已经可以提供一些代码,但是对于我来说,flowdocument对我来说是新的,就像wpf一样。

1 个答案:

答案 0 :(得分:1)

我编写了一个代码片段来收集以INT或EXT开头的行。 我确信代码不是最优的,因为我没有使用RichTextBox,但我认为这很容易理解。

private List<string> CollectLines()
{
    TextRange textRange = new TextRange(
        // TextPointer to the start of content in the RichTextBox.
        TestRichTextBox.Document.ContentStart,
        // TextPointer to the end of content in the RichTextBox.
        TestRichTextBox.Document.ContentEnd);

    // The Text property on a TextRange object returns a string 
    // representing the plain text content of the TextRange. 
    var text = textRange.Text;

    List<string> resultList = new List<string>();

    // Collect all line that begin with INT or EXT
    // Or use .Contains if the line could begin with a tab (\t), spacing or whatever
    using (StringReader sr = new StringReader(text))
    {
        var line = sr.ReadLine();
        while (line != null)
        {

            if (line.StartsWith("INT") || line.StartsWith("EXT"))
            {
                resultList.Add(line);
            }

            line = sr.ReadLine();
        }
    }

    return resultList;
}

也许您可以了解如何将列表放入列表框中:)