在C#WPF中逐行读取RTF文件

时间:2018-11-09 10:59:27

标签: c# wpf richtextbox rtf readlines

我正在使用C#WPF工具,该工具将读取不同的文本文件类型并逐行分析文件。

例如,对于.asc文本文件,它可以正常工作:

foreach (string line in File.ReadLines(myFile.asc)) {
  AnalyzeCurrentLine(line);
}

现在,对于我而言,读取RTF文件变得很困难。我仍然想逐行阅读。文本格式不相关。 RichTextBox对象是否是正确的方法?

1 个答案:

答案 0 :(得分:1)

您可以使用RichTextBox加载RTF,然后像这样逐行读取其内容:

RichTextBox rtb = new RichTextBox();
string rtf = File.ReadAllText("file.rtf");
using (MemoryStream stream = new MemoryStream(Encoding.Default.GetBytes(rtf)))
    rtb.Selection.Load(stream, DataFormats.Rtf);

string text = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd).Text;
string[] lines = text.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
foreach(string line in lines)
{
    //...
}