C# 从richtextbox中的flowdocument中提取以特定单词WPF开头的行
我是wpf的新手,我想做一个文本分析工具。 我已经知道如何将文本导入富文本框并正确格式化,但现在我想运行一个方法,提取flowdocument中以INT或EXT开头的所有行,并将它们放在列表框中。在winforms中执行此操作似乎比在WPF中更容易 有人能指导我吗C# 从richtextbox中的flowdocument中提取以特定单词WPF开头的行,c#,wpf,richtextbox,flowdocument,C#,Wpf,Richtextbox,Flowdocument,我是wpf的新手,我想做一个文本分析工具。 我已经知道如何将文本导入富文本框并正确格式化,但现在我想运行一个方法,提取flowdocument中以INT或EXT开头的所有行,并将它们放在列表框中。在winforms中执行此操作似乎比在WPF中更容易 有人能指导我吗 我希望我已经提供了一些代码,但是对我来说,流程文档和wpf一样是新的。我已经编写了一个代码片段来收集以INT或EXT开头的行。 我确信代码不是最优的,因为我不熟悉RichTextBox,但我认为它很容易理解 private List&
我希望我已经提供了一些代码,但是对我来说,流程文档和wpf一样是新的。我已经编写了一个代码片段来收集以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;
}
private List CollectLines()
{
TextRange TextRange=新的TextRange(
//text指向RichTextBox中内容开头的指针。
TestRichTextBox.Document.ContentStart,
//文本指向RichTextBox中内容结尾的指针。
TestRichTextBox.Document.ContentEnd);
//TextRange对象的Text属性返回字符串
//表示TextRange的纯文本内容。
var text=textRange.text;
列表结果列表=新列表();
//收集所有以INT或EXT开头的行
//如果行可以以制表符(\t)、间距或其他形式开头,则使用.Contains
使用(StringReader sr=新的StringReader(文本))
{
var line=sr.ReadLine();
while(行!=null)
{
if(line.StartsWith(“INT”)| | line.StartsWith(“EXT”))
{
结果列表。添加(行);
}
line=sr.ReadLine();
}
}
返回结果列表;
}
也许你可以自己找出如何将列表放入列表框:)这确实是一个很大的帮助。这个列表框我知道怎么做。但是,代码给了我一个错误“mscorlib.dll中发生了类型为'System.ArgumentException'的未处理异常附加信息:路径中的非法字符”知道这是怎么发生的还是如何解决的吗?richtextbox中的文本只包含简单文本。哦,是的,对不起-StreamReader用于文件。当您输入变量文本时,它不是文件路径。这就是错误的原因。我将很快编辑代码。我真的很感谢你的时间和努力。这对meI将StreamReader更改为StringReader是一个很大的帮助。但是StringReader没有EndOfStream属性。我希望检查线路!=空值将起作用