• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

seoman2

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

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

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

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

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

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

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

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

В чем ошибка?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
тут правильнее делать замену @NewLine
 

seoman2

Green Team
17.02.2010
504
1
BIT
46
Я не могу понять, как правильно в поле "СОДЕРЖАНИЕ" лотус скриптом находить абзацы.
 

seoman2

Green Team
17.02.2010
504
1
BIT
46
Не совсем, надо что то типа:
Set rtitem = doc.GetFirstItem("СОДЕРЖАНИЕ")
sText$ = Implode(rtitem.Text,Evaluate({@NewLine}))

Разделить абзацы из поля "СОДЕРЖАНИЕ" в переменную sText$.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
здесь была ссылка на проект...
в нем РТ конвертился в хтмл, причем не только текст, но и картинки
 

seoman2

Green Team
17.02.2010
504
1
BIT
46
Сделать временный док с одним полем, перегнать его с CreateDXLExporter в поток?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Абзацы находятся с помощью NotesRichTextNavigator. Пример в хелпе есть.
 

seoman2

Green Team
17.02.2010
504
1
BIT
46
Когда перебираю абзацы с rtnav.FindNextElement() и выделяю их с NotesRichTextRange, то как найти абзацы, которые разделены Enter ?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
В смысле? Если перебираешь RTELEM_TYPE_TEXTPARAGRAPH, то это и будут абзацы, разделённые Enter.
 

seoman2

Green Team
17.02.2010
504
1
BIT
46
Не совсем точно описал проблему. Как с FindNextElement получить пустую строку? Абзацы при вводе разделены ентером.
Пример:
Было:
Абзац1
Абзац2
энтер, тут пустая строка.
Абзац3

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

А мне нужно, чтобы "было" и "стало" совпадали.
 

Leoric

Lotus Team
15.10.2003
68
9
BIT
24
Может вам надо что-то типа:
Код:
	Set body = doc.GetFirstItem("Body")	
Messagebox ReplaceSubstringValue( body.GetFormattedText(False, 32000), Chr(13), "<br>")
Здесь ReplaceSubstringValue это просто самописная функция поиска и замены подстроки
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
Chr(13) возврат каретки (carriage return CR)
Chr(10) прокрутка (дословно - подача) строки (line feed - LF)
LF и есть новая строка, !
но вот однозначной замены произвести не получится (см ссылку)
 

Leoric

Lotus Team
15.10.2003
68
9
BIT
24
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>-ом, хотя зависит от задачи конечно.
 
Мы в соцсетях:

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