Нужна Помощь В Открытии Файла Из Lotus

Статус
Закрыто для дальнейших ответов.

AnnaS

Active Member
12.03.2013
35
0
#1
Добрый день, проблема в следующем:
необходимо выгрузить из РК Лотуса файлы и открыть только файлы с определенным расширением. возможно ли это?
чтобы выгрузить файлы
<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">
Код:
Sub Initialize

Dim session As NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim body As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator
Dim att As NotesEmbeddedObject
Dim stream As NotesStream
Dim fileNum As Integer
Dim fileName As String

Set session = New NotesSession
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
If Not doc.HasEmbedded Then Exit Sub
Set body = doc.GetFirstItem(\"Body\")
Set rtnav = body.CreateNavigator
Set stream = session.CreateStream

If rtnav.FindFirstElement(RTELEM_TYPE_FILEATTACHMENT) Then
Do
Set att = rtnav.GetElement()
filepath$ = \"C:\\Users\\Desktop\\На подпись\\\" & att.Source
Call att.ExtractFile(filepath$)
Print filepath$ & \" extracted\"
Loop While rtnav.FindNextElement()
End If
Выгружает. А вот как открыть именно файлы с нужным расширением не знаю.нужно только запустить файл с этим расширением из моей папки \"На подпись\" на Раб.столе. Если кто-то может помочь, прошу откликнуться, ибо не являюсь программистом и создаю вторую неделю методом \"тыка\".
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#2
Если ОС windows, то попробуй:
Код:
res = Shell("rundll32 url.dll,FileProtocolHandler " & fileName, 4)
fileName - полный путь к файлу
Гарантию, что все будет работать правильно не дам.

Добавлено: а про расширение...
att.Source полагаю строка, значит анализируй последние 3 символа и если они не нужные, то не выгружай такой файл...
что-то вроде:
Код:
Do
Set att = rtnav.GetElement()
if lcase(right(att.Source,3)) = "doc" then
filepath$ = "C:\Users\Desktop\На подпись\" & att.Source
Call att.ExtractFile(filepath$)
Print filepath$ & " extracted"
res = Shell("rundll32 url.dll,FileProtocolHandler " & filepath$, 4)
end if
Loop While rtnav.FindNextElement()
 

AnnaS

Active Member
12.03.2013
35
0
#3
ОС windows
благодарю.
файл с нужным расширением выгружает.все хорошо.
теперь надо его запустить. или открыть.
этот файл у меня дальше сам отрабатывает, его только нужно из лотуса открыть.вот как открыть или запустить не знаю
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#4
shell же или не помогло?
Что за файл? Exe? bat?

Добавлено: Посмотрите в трее или на панели задач. 4 - открыть без фокуса
 

AnnaS

Active Member
12.03.2013
35
0
#5
shell же или не помогло?
Что за файл? Exe? bat?

Добавлено: Посмотрите в трее или на панели задач. 4 - открыть без фокуса

файл подписи с расширением p7s.
открыть не помогло.
может,не так пояснила. в общем, нужно, чтобы выгрузил все файлы (это он у меня делает),
а затем нужно, чтобы файл с расширением p7s открылся.
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#6
а двойным кликом открывается у вас?
Написано, что можно Outlook'ом открыть. Может ПО необходимое не установлено?
Файл с расширением p7s представляет собой e-mail сообщение, содержащее цифровую подпись. Используется для безопасной отправки электронных писем, которые может просмотреть только получатель.

Данный метод отправки удостоверяет отправителя и подтверждает, что письмо не было изменено в процессе передачи. Если почтовая программа не поддерживает цифровую подпись, то файл P7S может появиться в виде вложения (smime.p7s) в сообщение электронной почты.

E-mail клиенты, которые используют формат файлов P7S, пользуются стандартом PKCS (Public-Key Cryptography Standard) #7 для подписи сообщений электронной почты.
 

AnnaS

Active Member
12.03.2013
35
0
#7
а двойным кликом открывается у вас?
Написано, что можно Outlook'ом открыть. Может ПО необходимое не установлено?
<tag thing='Раскрывающийся Текст'></tag>

Почти всё получилось! последнее:
надо , чтобы в этой строке if lcase(right(att.Source,3)) = "doc" then
выбрал не только doc, но и например,docx.
подскажите,как сделать два значения. и тот,и другой.чтобы оба выгружались.
каким оператором или функцией?
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#8
заменить
Код:
if lcase(right(att.Source,3)) = "doc" then
на
Код:
if lcase(right(att.Source,3)) = "doc" or lcase(right(att.Source,4)) = "docx" then
Еще есть более интересный ход:
Код:
Select case lcase(StrRightBack(att.Source,{.}))
Case "doc","docx":
filepath$ = "C:\Users\Desktop\На подпись\" & att.Source
...
Case else:
end select
Добавляя расширения в строку Case "doc","docx" через запятую можно указать еще форматы
 

AnnaS

Active Member
12.03.2013
35
0
#9
Почти всё получилось! последнее:
надо , чтобы в этой строке if lcase(right(att.Source,3)) = "doc" then
выбрал не только doc, но и например,docx.
подскажите,как сделать два значения. и тот,и другой.чтобы оба выгружались.
каким оператором или функцией?


все работает! спасибо!результата добилась!
тему можно закрыть.
 
Статус
Закрыто для дальнейших ответов.