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

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

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

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

не удаляеться иконка вложения

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

Vvv

Я удаляю аттачи через функцию NSFNoteDetachFile при этом сам файл удаляеться из письма но его иконка остаеться.

Подскажите пожалуйста как можно удалить иконку вложения ? подходит любой способ
 
K

Klido

погляди какое поле показано в области иконки вложения - его дополнительно и удаля....
 
V

Vvv

>погляди какое поле показано в области иконки вложения - его дополнительно и удаля....
к сожалению иконка находиться в body который удалить я не могу
 
V

Vvv

в принципе мне все равно каким способом удалять аттачь но я знаю только способо через NSFNoteDetachFile
 
O

Omh

Vvv, батенька, Вы жжёте!

Давай лучше через NotesEmbeddedObject?
Omh какбэ гарантирует, что будет проще :(

В чём задача состоит?
Ща решим!
 
V

Vvv

сейчас посмотрел help нашел варианты для удаления
NSFItemDeleteByBLOCKID
удалить item $FILE в котором аттачь с заданным именем но помоему оба варианта не как не влияют на удаление иконки

Давай лучше через NotesEmbeddedObject?

я пишу addin для domino на С++ в help по domino c api я не вижу функций эквивалентным NotesEmbeddedObject в LotusScript

конечная цель - из программы на C++ удалить вложение в note так что бы иконка аттача удалилась тоже
 
V

Vvv

иконка в документе
можно считать это обычное письмо с приатачиным файлом
 
T

TIA

Надо явно парсить RTF-поле и удалять из него CD начинающееся с CDHOTSPOTBEGIN и типом HOTSPOTREC_TYPE_FILE. Если надо удалить один из аттачей, которые располагаются в одном RTF, то находить его по внутреннему имени файла (ну тот, который уникальный если вложено два файла с одинаковым именем).
 
V

Vvv

Надо явно парсить RTF-поле и удалять из него CD начинающееся с CDHOTSPOTBEGIN и типом HOTSPOTREC_TYPE_FILE. Если надо удалить один из аттачей, которые располагаются в одном RTF, то находить его по внутреннему имени файла (ну тот, который уникальный если вложено два файла с одинаковым именем).

спасибо за ваш ответ
я пытался уже так сделать не получилось потому что
0) мне надо сделать общий случай удаление любого атача
1) имя файла я узнаю только после того как начну парсить HOTSPOTREC_TYPE_FILE элемент, вернуться назад к CDHOTSPOTBEGIN я не смог
2) я не смог придумать как запомнить ссылку на CDHOTSPOTBEGIN (как индифицировать cd элемент) тогда бы я сделал за два прохода
нашел нужный для удаления элемент (по HOTSPOTREC_TYPE_FILE) сохранив ссылку на него
вторым проходом удалил бы его

как то так
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
отправляйтесь

давненько (2003 год...) я ковырял код разработчика...
там были разные способы модификации дока (и РТ, помню, было)
 
V

Vvv

спасибо за ссылку посмотрю еще раз как он удаляет атачии

вообще автору этого проекта я показал несколько ошибок и как их исправить
его Extension manager досих пор имеет проблеммы (вешает сервер на работе Indexer) хотя я ему писал как исправить
 
T

TIA

я пытался уже так сделать не получилось потому что

Хм.
1) А как Вы реализовываете удаление их RTF-поля? Думаю, что должно быть что-то вроде копирования содержимого поля в новый буфер в памяти (или в файл), пропуская ненужные CD-записи. А затем замена старого значения RTF-поля новым из буфера, с уже удалёнными CD-записями. Потому почему бы не выполнять копирование памяти от CDHOTSPOTBEGIN до CDHOTSPOTEND только если он содержит ссылку на интересующий в данным момент файл? Т.е. перед копированием надо будет прочитать несколько CD-записей вперёд.
0) Чем не общий случай? По вашим правилам Вы определяете имя файла для удаления или просто удаляете все вложения. Какой более общий случай вас интересует?
 
K

Klido

случилось похожее на днях делать, в 8.5.1 появились кое-какие новые апраметры для формул - мож они правильно зачистят иконки?

EditInsertFileAttachment @Command
Attaches a file to a document.

Syntax
@Command( [EditInsertFileAttachment] )

or

@Command( [EditInsertFileAttachment] ; file ; compress ; append ; deleteexisting ; deletefile )

Parameters
file

Text. Optional. The name of the file you want to attach. Be sure to include the complete path specification (appropriate to the user's operating system).

compress

Text. Optional. Specify "1" (default) if you want to compress the attachment. Specify "0" if you do not.

append

Text. Optional. Specify "1" if you want to append the attachment. Specify "0" (default) if you want to insert it at the current position.

Note This parameter is new with Release 8.5.1.

deleteexisting

Text. Optional. Specify "1" if you want to delete the same existing attachment. Specify "0" (default) if you do not.

Note This parameter is new with Release 8.5.1.

deletefile

Text. Optional. Specify "1" if you want to delete the base file. Specify "0" (default) if you do not.

Note This parameter is new with Release 8.5.1.

Without a file parameter, displays the Create Attachment dialog box. If a file is specified, attaches that file to the document without opening the Create Attachment dialog box.
 
K

Klido

удалить вложение (и иконку) - проблем нет, но вот при вложении в бэкграунде какого-либо файла он в ртф вкладывается с иконкой по-умолчанию, т.е. никакой на вид...
при этом пресловутый показ аттача внизу документа (ранее я задавал вопрос откуда оно вылезает ;), но так ни до чего и не дошли...) показывает всё правильно, что наводит на мысль о возможности вложить в ртф файло программно более красиво (через UI всё ОК, но надо именно в бэкграунде). Вкладываю примерно так

Код:
			  filename = ws.OpenFileDialog(flase, "Укажите новый файл")
Set rtitem = ND.GetFirstItem( "Doc_Attach" )
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", filename(0))
Call ND.save(True,False)

и получаем вот такой вид документа с вложением
att4.jpg
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
забейте на РТФ классы - ибо глюкало
к томуже, иконки - нотуса берут из "реганых" приложений на вянде (без интерактивного действа - иконка вложения не будет цепляться, такуж написали)
выход след. - делать через DXL, иконок (для приложений) "надергать" из самих приложений, перекодить в гиф и сложить в базу. Подставлять, согласуясь с собственным худ. вкусом :)
 
K

Klido

красивая иконка - это даже не пол-, а 1/32-я беды :) не критично пока и можно рассказать, что пока будет так, а вот показ вложений внизу документа 2-й раз (причем всех вложений, там в документе не одно РТФ) - раздражает народ (ну и меня :crash:). Времени нет, к сожалению, экспериментировать с достаточно сложной формой (там штук 5 подформ только с вложенными же подформами), но странная псевдосекция внизу напрягает :)
 
Мы в соцсетях:

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