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

Reading RTF Files line by line in C# WPF

我正在开发一个 C# WPF 工具,它将读取不同的文本文件类型并逐行分析文件。

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

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

现在阅读 RTF 文件变得困难了。我还是想一行一行的看。文本格式无关紧要。 RichTextBox 对象是正确的方法吗?

您可以使用 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)
{
    //...
}