Перенос Абзацев В Стринг

  • Автор темы Автор темы seoman2
  • Дата начала Дата начала

seoman2

Green Team
17.02.2010
507
1
BIT
72
Здравствуйте.
Проблема такая:
Есть поле СОДЕРЖАНИЕ (Rich Text)
В нем абзацами текст.

Я хочу получить его в Text$, чтобы каждый абзац разделялся тегом "<br/>", для дальнейшего использования в html.

Делаю так
кидаю содержимое поля СОДЕРЖАНИЕ в переменную Text$.

string1 = Chr(10)+Chr(13) ' что заменяем
string2 = "<br/>" ' на перенос

И потом в Text$ заменяю string1 на string2.

Но при этом
В лотусе:
Текст абзаца 1
Текст абзаца 2

Текст абзаца 3

В Text$
Текст абзаца 1Текст абзаца 2
Текст абзаца 3

В чем ошибка?
 
тут правильнее делать замену @NewLine
 
Я не могу понять, как правильно в поле "СОДЕРЖАНИЕ" лотус скриптом находить абзацы.
 
Не совсем, надо что то типа:
Set rtitem = doc.GetFirstItem("СОДЕРЖАНИЕ")
sText$ = Implode(rtitem.Text,Evaluate({@NewLine}))

Разделить абзацы из поля "СОДЕРЖАНИЕ" в переменную sText$.
 
здесь была ссылка на проект...
в нем РТ конвертился в хтмл, причем не только текст, но и картинки
 
Сделать временный док с одним полем, перегнать его с CreateDXLExporter в поток?
 
Абзацы находятся с помощью NotesRichTextNavigator. Пример в хелпе есть.
 
Когда перебираю абзацы с rtnav.FindNextElement() и выделяю их с NotesRichTextRange, то как найти абзацы, которые разделены Enter ?
 
В смысле? Если перебираешь RTELEM_TYPE_TEXTPARAGRAPH, то это и будут абзацы, разделённые Enter.
 
Не совсем точно описал проблему. Как с FindNextElement получить пустую строку? Абзацы при вводе разделены ентером.
Пример:
Было:
Абзац1
Абзац2
энтер, тут пустая строка.
Абзац3

Стало:
Абзац1
Абзац2
Абзац3

А мне нужно, чтобы "было" и "стало" совпадали.
 
Может вам надо что-то типа:
Код:
	Set body = doc.GetFirstItem("Body")	
Messagebox ReplaceSubstringValue( body.GetFormattedText(False, 32000), Chr(13), "<br>")
Здесь ReplaceSubstringValue это просто самописная функция поиска и замены подстроки
 
Chr(13) возврат каретки (carriage return CR)
Chr(10) прокрутка (дословно - подача) строки (line feed - LF)
LF и есть новая строка, !
но вот однозначной замены произвести не получится (см ссылку)
 
Chr(13) возврат каретки (carriage return CR)
Chr(10) прокрутка (дословно - подача) строки (line feed - LF)
LF и есть новая строка, в современных системах!
но вот однозначной замены произвести не получится (см ссылку)
Я с вами не спорю, но при замене LF получится
Код:
Абзац1
<br>Абзац2
<br>
<br>Абзац3
а при замене CR получается
Код:
Абзац1<br>
Абзац2<br>
<br>
Абзац3
ИМХА, топикстартеру необходим именно второй вариант, возможно с "добиванием" в конце еще одним <br>-ом, хотя зависит от задачи конечно.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!