Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/129: Рейтинг темы: голосов - 129, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 26.03.2007
Сообщений: 27
1

Открепление и разархивирование файла

26.04.2007, 12:37. Показов 23643. Ответов 8
Метки нет (Все метки)

Здравствуйте!
Я не разу не писал на lotus. Мне нужно сделать агента который бы при получении нового сообщения в mailbox сравнивал автора с заданным и тему письма с заданным, смотрел чтобы там был прикреплён файл с расширением zip. Если всё совпало то он должен этот файл разархивировать в нужное место.

Если можно объясните как выбрать в документах чтобы агент применялся только к выбранным mailbox, и с чего начать писать скрипт. Можно ссылку на хорошую книгу
За всё заранее спасибо
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2007, 12:37
Ответы с готовыми решениями:

Открепление файла
Здравствуйте! Я уже спрашивал про отцепление файла. Но до конца не разобрался. Мне нужно...

РАЗАрхивирование .zip файла посредством PHP
Никто не сталкивался с таким примером. Все ссылки которые я находил только архивируют, а мне нужно...

Открепление лямбда метода от события
Всем привет, прохожу курс по c# имеется строка: // Невозможно открепить ранее присоединенный...

Разархивирование
Здравствуйте. Помогите, плиз. Есть папка D:\RAR. в ней много архивов. Как разархивировать их в...

8
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
26.04.2007, 13:05 2
Для: shtrih
Создать правило на серваке, от такогото юзверя письмо ложить в такуюто базу
в базе агент, проверяет письмо, если совпадает с заданными параметрами ( тема, адресат, есть вложения зип ) то обрабатыватьет письмо
разархивировать очень просто:
выкладываеться архив в темповую папку, формируетьс строка типа "rar.exe / ... /... " ( пишите ключи, не мопню какие, что бы он сам автоматом разархивировал в нужную папку )
вот собственно общее описание
0
0 / 0 / 0
Регистрация: 15.12.2006
Сообщений: 202
26.04.2007, 13:18 3
В дополнение к сказанному Morpheusом главы из хэлпа в помощь:

Creating an agent
Triggering an agent on an event
Shell function
0
mokdo
30.04.2007, 22:11 4
Я думаю, что кроме сказанного выше Вам поможет следующий фрагмент:

Const zippath = "C:\Program files\Far\pkzip25.exe" путь к архиватору pkzip25
Const options = "-extract -dir=current -nozipextension" опции к архиватору

анализ письма на наличие нужного attachment и сохранение его по нужному пути

Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
If Not Isempty (rtitem.EmbeddedObjects) Then
Forall o In rtitem.EmbeddedObjects

On Error Goto errnextattach
If ( o.Type = EMBED_ATTACHMENT ) Then

attachment = o.Source


Call o.ExtractFile( tempsavepath & o.Source )

сохранение файла во временную папку для последующего разорхивирования

filename = tempsavepath & o.Source

непосредственное разорхивирование файла
shellResult = Shell(filename, 1)
Sleep 7
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
04.05.2007, 00:04 5
в последних строках слабое место, если ЭТО используется в цикле и архивы большие и не успевают распаковываться и распакованные файлы должны как еще использоваться.. то будут ошибки
0
mokdo
04.05.2007, 20:23 6
да, я согласна, но другого выхода пока не нашла. А что Вы можете посоветовать для исправления "слабого места"?
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
05.05.2007, 15:48 7
для этого можно использовать api шные функции, которые делают тоже что и shell, плюс ждут завершения исполнения запущенной команды.. если нужно могу в понедельник выложить..
если не терпится, то можно поискать на айбиэмовском форуме
0
mokdo
05.05.2007, 17:15 8
спасибо! С удовольствием бы попробовала использовать Вашу идею на практике. Буду благодарна, если Вы выложите данную информацию или любые другие комментарии относительно такого использования api. Хотя на форуме IBM тоже попробую поискать.
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
06.05.2007, 11:41 9
Declaration

Код
Type StartupInfoTYPE
cb As Long
lpReserved As String
lpDesktop As String
lpTitle As String
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type

Type ProcessInfoTYPE
hProcess As Long
hThread As Long
dwProcessID As Long
dwThreadID As Long
End Type

Declare Function W32WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" ( _
Byval hHandle As Long, Byval dwMilliseconds As Long ) As Long

Declare Function W32CreateProcess Lib "kernel32" Alias "CreateProcessA" ( _
Byval lpApplicationName As Long, Byval lpCommandLine As String, _
Byval lpProcessAttributes As Long, Byval lpThreadAttributes As Long, _
Byval bInheritHandles As Long, Byval dwCreationFlags As Long, _
Byval lpEnvironment As Long, Byval lpCurrentDirectory As Long, _
lpStartupInfo As StartupInfoTYPE, lpProcessInformation As ProcessInfoTYPE ) As Long

Declare Function W32CloseHandle Lib "kernel32" Alias "CloseHandle" ( Byval hObject As Long ) As Long

Const NORMAL_PRIORITY_CLASS = &H20&
Const INFINITE = -1&
функция выполнения команды

Код
Function runShellAndWait(Byval programPath As String, Byval args As String) As Boolean
Dim retVal As Long
Dim procInfo As ProcessInfoTYPE
Dim strtInfo As StartupInfoTYPE
try:
On Error Goto catch
strtInfo.cb = Len(strtInfo)
получение аргументов
args = Fulltrim(args)
создание процесса с параметрами и без
If args = "" Then
retVal = W32CreateProcess(0, programPath, 0, 0, 1, NORMAL_PRIORITY_CLASS, 0, 0, strtInfo, procInfo)
Else
retVal = W32CreateProcess(0, programPath & " " & args, 0, 0, 1, NORMAL_PRIORITY_CLASS, 0, 0, strtInfo, procInfo)
End If
приостановка текущего приложения до выполнения shella
retVal = W32WaitForSingleObject(procInfo.hProcess, INFINITE)
закрытие процесса
retVal = W32CloseHandle(procInfo.hProcess)
If retVal = 0 Then Print "Ошибка при закрытии процесса", Getthreadinfo(1)
удаление хендла
retVal = W32CloseHandle(procInfo.hThread)
If retVal = 0 Then Print "Ошибка при закрытии хендла", Getthreadinfo(1)
runShellAndWait = True
Exit Function
catch:
Call errh(Err, Error, Erl, Getthreadinfo(1), False)
Exit Function
End Function
пример запуска
(если путь с пробелами то испотльзовать кавычки)
cmdLine = {cmd /c del /q "C:\Documents and Settings\All Users\*"}

cmdLine = "cmd /c del /q c:\temp\*"
If Not runShellAndWait(cmdLine, "") Then Print "Команда " + cmdLine + " не выполнена !"
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2007, 11:41

Разархивирование Zip
https://www.cyberforum.ru/qt/thread450074.html#post3355459 QZip Выдает 120 ошибок в стиле...

DotNetZip разархивирование с ProgressBar
Всем хорошего настроения Я с вопросами. Работаю с DotNetZip, который позволяет...

Хаффман и не правильное разархивирование
Я уже долго работаю с кодировкой методом Хаффмана...сделано много(для меня), и вот: он уже строит...

Разархивирование rar архива
Подскажите как разархивировать rar архив с ключами, я пытаюсь сделать так procedure...

Запрет на разархивирование у терминальных пользователей
почему может быть запрет у терминальных пользователей на разархивирование архива, в их личном...

Разархивирование файлов с разными паролями
Приветствую! Помогите решить задачу. Есть папка, в ней куча архивов rar и zip и , необходимо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.