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

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

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

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

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

Очистка Rt-поля От Текста

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

StarikStarik2705

в общем такая ситуация что я даже и не знаю. есть РТ поле с вложением и плюс текст. Задача состоит в том что бы скопировать отдельно в другое поле-РТ текст, в третье Отдельно аттачи. я написал вот такую штуку:

set Appendix = rt.Copyitemtodocument(doc, Appendix.Name)
в Appendix - лежит и текст и аттачи.

Dim rtnav As NotesRichTextNavigator
Dim rtlink As NotesRichTextDocLink
Dim rtrange As NotesRichTextRange
Set rtnav = Appendix.CreateNavigator
If rtnav.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH) Then
Set rtrange = body.CreateRange
Call rtrange.SetBegin(rtnav)
Call rtrange.Setend(rtnav)
'MsgBox Appendix.Getunformattedtext()
Call rtrange.FindAndReplace( rtrange.Textparagraph , "" , RT_REPL_ALL )
после всех махинаций мсжбокс уверяет меня что текст я затёр в РТ поле. Но сохранение мне показывает что ты не прав.
'MsgBox Appendix.Getunformattedtext()
Call appendix.Update()

вопрос: как затереть в поле с вложением и текстом, текст?
 
S

susinmn

Текст - через plainText$ = notesRichTextItem.GetUnformattedText( )

Вложения через
If Not Isempty(item.EmbeddedObjects) Then
Forall a In item.EmbeddedObjects

End Forall
End If
 
S

StarikStarik2705

Текст - через plainText$ = notesRichTextItem.GetUnformattedText( )

Вложения через
If Not Isempty(item.EmbeddedObjects) Then
Forall a In item.EmbeddedObjects

End Forall
End If
это понятно))) но удалить его из ричь текста как? не повредив при этом аттачи
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
53
Если текст нужен с форматированием, то создаём временный док, копируем туда RT-поле, удаляем аттачи, получаем поле с форматирование, но без аттачей.
Для того, чтобы взять аттачи мега-неповредив их, то см. 2-е сообщение.

P.S. И Вы опять не попадаете форумом.
 
S

StarikStarik2705

Если текст нужен с форматированием, то создаём временный док, копируем туда RT-поле, удаляем аттачи, получаем поле с форматирование, но без аттачей.
Для того, чтобы взять аттачи мега-неповредив их, то см. 2-е сообщение.

P.S. И Вы опять не попадаете форумом.
в общем проблема была решена, в бою правда она почему то не сработала
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"неужели мне так сложно оформить код правильно???"</div></div><div class="sp-body"><div class="sp-content">
Код:
	On Error Goto errl
On Error 4091 Resume Next
Dim w As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim s As New NotesSession
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim rtA As NotesRichTextItem
Dim rtB As NotesRichTextItem
Dim doctmp As NotesDocument



Set db = s.CurrentDatabase
Set doc = w.CurrentView.View.GetFirstDocument
Set doctmp = db.CreateDocument

Set rtA = doc.GetFirstItem("RTA")	
Set rtB = doctmp.CreateRichTextItem("tmpRTA")
Call rtA.copyitemtodocument(doctmp,rtB.name)
Call rta.remove
Set rta = doc.CreateRichTextItem("RTA")
Dim rtnav As NotesRichTextNavigator
Dim rtlink As NotesRichTextDocLink
Dim rtrange As NotesRichTextRange
Set rtnav = rtb.CreateNavigator
If rtnav.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH) Then
Set rtrange = rtb.CreateRange
Call rtrange.SetBegin(rtnav)
Call rtrange.Setend(rtnav)
Call rtrange.FindAndReplace( rtrange.Textparagraph , "" , RT_REPL_ALL )
End If				
Call rtB.copyitemtodocument(doc,rta.name)	

Call doc.Save(True,False)		
Call w.EditDocument(True,doc)
n:
Exit Sub
errl:
Msgbox Error & " на строке " & Erl
Resume n
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
53
Потому что Вы реализовали не то, что хотели.
 
Мы в соцсетях:

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