Чтение RTF-файлов построчно в C # WPF - PullRequest
0 голосов
/ 09 ноября 2018

Я работаю над инструментом CF WPF, который будет читать различные типы текстовых файлов и анализировать файл построчно.

Работает нормально, например, для текстового файла .asc:

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

Теперь мне становится трудно читать RTF-файл. Я все еще хочу прочитать это построчно. Формат текста не актуален. Является ли объект RichTextBox правильным способом для этого?

1 Ответ

0 голосов
/ 09 ноября 2018

Вы можете использовать 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)
{
    //...
}
...