从特定单词 WPF 开头的 richtextbox 中的流文档中提取行
extract lines from a flowdocument in a richtextbox starting with specific words WPF
我是wpf的新手,我想做一个文本分析工具。
我已经知道如何将文本导入富文本框并正确设置格式,但现在我想 运行 一种提取流文档中以 INT 或 EXT 开头的所有行并将它们放入列表框中的方法。在 winforms 中执行此操作似乎比在 WPF 中更容易。
有人可以指导我吗?
我希望我已经可以提供一些代码了,但是 flowdocument 和 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;
}
也许您可以了解如何自己将列表放入列表框中:)
我是wpf的新手,我想做一个文本分析工具。 我已经知道如何将文本导入富文本框并正确设置格式,但现在我想 运行 一种提取流文档中以 INT 或 EXT 开头的所有行并将它们放入列表框中的方法。在 winforms 中执行此操作似乎比在 WPF 中更容易。
有人可以指导我吗?
我希望我已经可以提供一些代码了,但是 flowdocument 和 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;
}
也许您可以了解如何自己将列表放入列表框中:)