Ваша интерпретация спецификации неверна.
Спецификация RTF ясно говорит:
Возврат каретки (символьное значение 13) или перевод строки (символьное значение)
10) будет рассматриваться как элемент управления \ par, если перед символом стоит
обратный слеш Вы должны включить обратную косую черту; в противном случае RTF игнорирует
контрольное слово. (Вы также можете вставить
пара возврат каретки / перевод строки без обратной косой черты как минимум каждые 255
символы для лучшей передачи текста по линиям связи.)
Это делает RTF почти безформатным языком, т.е. Содержимое RTF не зависит от разрывов строк (т.е. символы новой строки не являются частью необработанного текста) :
Hi
\par
guys
\par<eof>
совпадает с
Hi\par\guys\par<eof>
т.е. Ваш читатель должен рассматривать все CR и LF, которые не имеют обратной косой черты, в качестве пробелов.
Hi
\
guys
\
<eof>
будет - если символ новой строки - CR + LF - пусть префиксные символы CR
будут обрабатываться как токен \par
, а все символы LF
будут обрабатываться как пробельные символы (поскольку для LF нет префикса обратной косой черты ).
Итак, спецификация правильная и точная.
Понял? ;)
(<eof>
обозначает здесь символ конца файла или конец файла, независимо от того, что выдает ваш текстовый редактор, а символ новой строки - CR, CR LF или LF, от того, что выдает ваш текстедитор :) )
Почему, поскольку Microsoft почти последовательно использует CRLF для окончаний строк,
RichTextBox будет переводить \ par в vbLf вместо vbCrLf?
Только в Windows новые строки являются CRLF. На других платформах / в некоторых приложениях это только LF. Нет платформы, использующей CR только как символ новой строки. Однако существуют платформы, которые одинаково обрабатывают CR и LF, то есть CRLF - это две новые строки. В других случаях CR игнорируется, если сразу за ним следует LF (обычно это приложения Windows).
Поведение, которое вы видите, - единственный способ убедиться, что текстовый результат приводит к одинаковому числу новых строк практически на всех платформах.
(Конечно, это также зависит от приложения ... Я бы назвал это одним из малоизвестных кошмаров о совместимости, этим беспорядком новой строки.)