1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Разархивировать и сохранить вложение

Тема в разделе "Lotus - Программирование", создана пользователем -, 20 янв 2006.

  1. Гость

    Репутация:
    0
    Нужно для входящей почты написать агента, который бы сохранял где-нить на диске вложение и разархивировал его.

    Впринципе с первой частью справляется такой код:

    Код:
    Sub Initialize
    Dim s As NotesSession
    Dim db As NotesDataBAse
    Dim coll As NotesDocumentCollection
    Dim doc As NOtesDocument
    Dim rtitem As Variant
    Dim result As Integer
    
    Set s=New NotesSession
    If Not s Is Nothing Then
     Set db=s.CurrentDataBAse
     If Not db Is Nothing Then
     	Set coll=db.UnprocessedDocuments
     	If Not coll Is Nothing Then
       For i=1 To coll.Count 
       	Set doc=coll.GetNthDocument(i)
       	Set rtitem = doc.GetFirstItem( "Body" )
       	If ( rtitem.Type = 1 ) Then
         If doc.HasEmbedded Then
         	Forall o In rtitem.EmbeddedObjects
           If (o.Type = EMBED_ATTACHMENT) Then 
           	Call o.ExtractFile( "c:\111\" & o.Source )
           End If
         	End Forall
         End If
       	End If    	
       	Call s.UpdateProcessedDoc(doc)
       Next
     	End If
     End If
    End If
    End Sub
    Теперь осталось разорхивировать. :(
    Пыталась сделать что-то типа такого:
    Код:
    Declare Function ExtractArchive Lib "unrar" Alias "ExtractArchive" (sArchive As String, Byval sDestPath As String, Byval sPassword As String) As Boolean
    
    ....
    Call ExtractArchive("image.rar", "c:\\111\\", "")
    или вот так:
    Код:
            	stringShell$ = "rar.exe e " & "c:\\111\\" & o.Source
           	Msgbox stringShell$ 
           	result = Shell(stringShell$, 1)
    но что-то не идет... явно где-то глюк. 8(
    я еще с dll в Лотусе не работала. Может че не так пишу...
    и с командной строкой явно какой-то глюк в конструкции

    Лотус 6.0.3.
     
  2. Domino6

    Domino6 Гость

    Репутация:
    0
    Shel работает от текущей(current) директории укажи напрямую размещение rar.exe
    Код:
    stringShell$ = "c:\tmp\rar.exe e " & "c:\tmp\" & o.Source
    и посмотри переменную stringShell$ после склейки
    по моему "c:\\111\\" много слешей попробуй "c:\111\"

    а это Call ExtractArchive("image.rar", "c:\\111\\", "")
    попробуй вызвать так
    Код:
    rez= ExtractArchive("image.rar", "c:\\111\\", "")
     
  3. Гость

    Репутация:
    0
    Да, спасибо! Второе помогло, а на первое оно пишет, что не находит такой функции в длл-ке.
    "External function not found"
    Все может быть, конечно... фиг знает как ее проверить есть она там или нет. А может вообще длл-ку не находит? :D
     
Загрузка...

Поделиться этой страницей