在 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)
{
//...
}
我正在开发一个 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)
{
//...
}