• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Сохранить Html-код в поле

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

ABarmin

Добрый день.

Не могу сохранить html-код, который сгенерирован агентом в поле документа. Простой текст в поле пишется на ура, html - ни в какую. Код записывалки:

Код:
Function reportBuildSaveResults(requestID As String, result As String)
On Error GoTo errH

Dim s As New NotesSession
Dim db As NotesDatabase
Dim request As NotesDocument

Set db = s.Currentdatabase
Set request = db.Getdocumentbyid(requestID)	

Call request.Replaceitemvalue("reportHTML", result)
Call request.Save(True, true)

basta:
Exit Function
errH:
Print (Error$ + " в строке (reportBuildSaveResults) " + CStr(Erl))
Resume basta		
End Function

Сюда передается requestID - ID документа, в который нужно поместить result - html код сгенерированного отчета.
Если в качестве result приходит простой текст, то он нормально сохраняется, если html-код - ни в какую.

Поле reportHTML пробовал делать как richText, так и просто текстом. Пробовал создавать его динамически - не помогает.

В чем может быть проблема?
 

duchan

Green Team
20.09.2006
127
11
BIT
96
а что html уже перестал быть просто текстом? :rolleyes:

По сути вопроса: посмотрите размер HTML'я он может быть просто больше 32К и не помещатся в поле - ограничение на размер текстового поля.
В ричтексте также надо добавлять "абзацами", поскольку там тоже действует ограничение на размер единого абзаца (помоему теже 32К, а может 64К - не помню точно)
 
A

ABarmin

Вполне возможно, что в текстовое поле не помещается.
Когда поле меняю на RichText, то выдает ошибку: Unable to allocate 64k of memory.

Как тогда добавлять много-много не разбитого текста абзацами в rich-text поле?
 
D

Dragon108

ABarmin
добавте полю IsSummary = false

Это тоже может не помочь (((

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

Как тогда добавлять много-много не разбитого текста абзацами в rich-text поле?

Посмотрите Notesrichtextitem class , в частности методы AddNewLine и AppendText
 
A

ABarmin

Нашел решение.

Удалил поле, заново создал как RichText и сделал ему AppendText.
 
A

ABarmin

Если не влезает, то вставляемый код разделяется на несколько RichText полей.
 

duchan

Green Team
20.09.2006
127
11
BIT
96
Если не влезает, то вставляемый код разделяется на несколько RichText полей.
зачем RichText то дробить? параграф вставь и пиши еще 64К....
Дробить на поля надо, если использовать простое текстовое поле, и дробить по 32К...
 
A

ABarmin

зачем RichText то дробить? параграф вставь и пиши еще 64К....
Дробить на поля надо, если использовать простое текстовое поле, и дробить по 32К...
Оно автоматически разделяется. Когда смотришь на документ и в свойствах видно, что RichText полей несколько, на самом деле - одно.
 

duchan

Green Team
20.09.2006
127
11
BIT
96
Оно автоматически разделяется. Когда смотришь на документ и в свойствах видно, что RichText полей несколько, на самом деле - одно.
читаем внимательно:
Дробить на поля надо, если использовать простое текстовое поле, и дробить по 32К...
про RT сказано, что после 64К надо поставить параграф (!), т.к. дробить то оно дробит, но единый параграф в RT не может превышать 64К - различайте понятия весь текст и один параграф в тексте.
 
Мы в соцсетях:

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