0 / 0 / 0
Регистрация: 16.02.2007
Сообщений: 403
1

Колекция -> Документ -> Выгрузить атачи -> Rar -> вернуть

06.04.2008, 16:21. Показов 24269. Ответов 12
Метки нет (Все метки)

У кого ни будь есть соображения как можно провернуть таку операцию.

Взять коллекцию документов, а затем открываем каждый проверяем есть ли там атач(и) если есть скидываем их на диск, да не просто скидываем, а упаковываем в рар, из исходного дока удаляем атач(и) и ложим туда архив.

Может есть рецептик, а то грустно как-то
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2008, 16:21
Ответы с готовыми решениями:

Не открывается документ rar
Скачал архив с документами, формат RAR пишет при наведении курсора на файл, но при открытии не...

Выгрузить ТаблицуЗначений в табличный документ
Понимаю, что вопрос глупый, но все же. Есть процедура; Процедура ВыбратьНоменклатуру()Экспорт ...

Как выгрузить отчет или документ из Зуп в БП
Добрый день! Подскажите, можно ли и как перенести отчет или документ из ЗУП в БП?

Combobox обьединить с RichTextBox и выгрузить данные в отдельный документ
Я создал форму виндовс и хочу что бы Combobox находящийся на richtextboxe образовал единый документ...

12
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
06.04.2008, 16:30 2
LIGHT
а какаой рецептик? единственное с чем надо разобраться - это командную строку рара - как заархивировать выбранный файл в "тихом" режиме
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
06.04.2008, 16:36 3
Вопрос: а нафига?

В смысле аттачи и так жмутся.
0
0 / 0 / 0
Регистрация: 16.02.2007
Сообщений: 403
06.04.2008, 16:41 4
Не жмутся! Ну или крайне не эфективно.
Например tiff 11м в базе, зарареный имеет 1м
Компрессия в БД включена
0
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383
06.04.2008, 17:25 5
Цитата Сообщение от LIGHT
Компрессия в БД включена
По-моему, ее и отключить-то нельзя... ЕМНИП, можно только выбрать, использовать LZ1 или метод Хаффмана...

Кстати, может быть полезно:
При вызове рара через командную строку есть риск прикрепить к документу недопакованный архив (потому как отследить момент создания архива легко, а момент окончания архивации - сложно).
Поэтому если будете пользоваться архиватором через командную строку - либо ставьте таймауты соответствующие (несколько десятков секунд), либо смотрите, готов ли архив по другим признакам.
Критериями могут быть:
- размер получившегося архива (например, если он меньше 1% от суммарного размера исходных файлов - значит явно битый)
- наличие в папке временного(ых) файла(ов) (если архиватор в процессе работы создает таковые).
М.б. имеет смысл поискать архиватор, который в процессе работы сначала создает временный файлик с архивом, а потом его переименовывает.

Извините, если информация оказалась бесполезной
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
06.04.2008, 17:37 6
Цитата Сообщение от D!m@n
а момент окончания архивации - сложно).
да собственно не сложно ... если заюзать (выполнить команду и дождатсья завершения) и написать чтото вроде ( C:\rar a 1.rar readme.rus.txt )

Код
Set WShell = CreateObject("WScript.Shell")
ReturnCode = WShell.Run("C:\rar.exe a C:\1.rar C:\readme.rus.txt", 1, True)
Msgbox "заархивировали"
где
C:\rar - путь к архиватору
а - заархивировать ( самая простая команда )
1.rar - результирующий файл ( лежит на диске С )
readme.rus.txt - шо архивировать ( лежит на диске С )
0
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383
07.04.2008, 10:36 7
2Morpheus: Очень полезная штука!
Только что переписал один старый скрипт с ее использованием - красота!
+1
0
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
07.04.2008, 11:24 8
не знал, использовал для этого винАПИ
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
07.04.2008, 12:25 9
Kee_Keekkenen
достойный вариант... и будет работать точно в отличии от WSH у которого могут быть ограничения ( как у любого COM обьекта в лотусе )
0
0 / 0 / 0
Регистрация: 16.03.2008
Сообщений: 49
07.04.2008, 16:27 10
Если кому интересно, есть платная утилитка ZipMail for Lotus Notes, написана на С++, есть как вариант как для клиента - когда пользователь приатачивает файл, файлик тихо конвертируется в zip и только потом приатачивается, иконка остается родная, например ворда, при открытии происходит обратное, простой пользователь может даже не понять, что файлик подкладывается на архив); Есть версия для Domino, добавляется в тасках, перелопачивает уже готовые базы и заменяет файлики на архивы. Вообще утилитка сделана очень аккуратно, но, лично мне непонятно зачем все это, тестировали на разных базах с разными вложениями, встроенный LZ1 уступает zip/rar всего 10-15%.

/Moderated by Morpheus/ Убрал открытую рекламу
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
07.04.2008, 16:50 11
Kee_Keekkenen
Если не затруднит можно код?
0
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
07.04.2008, 16:55 12
Morpheus
Я за место него


Код
Public Const NORMAL_PRIORITY_CLASS = &H20&
Public Const INFINITE = -1&

Public Type STARTUPINFO
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

Public Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessID As Long
dwThreadID As Long
End Type

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

Declare Function CreateProcessA Lib "kernel32" (_
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 STARTUPINFO, _
lpProcessInformation As PROCESS_INFORMATION) As Long

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (_
Byval hwnd As Long, _
Byval lpOperation As String, _
Byval lpFile As String, _
Byval lpParameters As String, _
Byval lpDirectory As String, _
Byval nShowCmd As Long ) As Long

Declare Function CloseHandle Lib "kernel32" (Byval hObject As Long) As Long
Dim RetVal As Long
Dim proc As PROCESS_INFORMATION
Dim StartInf As STARTUPINFO

Private Function ShellAndWait(Byval RunProg As String) As Long
StartInf.cb = Len(StartInf)
StartInf.wShowWindow = 0&

RetVal = CreateProcessA(0&, RunProg, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS, 0&, 0&, StartInf, proc)

RetVal = WaitForSingleObject(proc.hProcess, INFINITE)
RetVal = CloseHandle(proc.hProcess)

ShellAndWait = RetVal
End Function

Function RunExternalProgram(CmdLine As String) As Boolean
On Error Goto Errh

If CmdLine = "" Then Exit Function

Dim Result As Long
Result = ShellAndWait(CmdLine)

RunExternalProgram = True

Exit Function
Errh:
Exit Function
End Function
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
07.04.2008, 17:00 13
Omh
ну щас оформим в CodeBAse
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2008, 17:00
Помогаю со студенческими работами здесь

Как разархивировать файлы типа <name>rar.001,<name>rar.002 и т.д. ?
Скачал одну программу, она поделена на части но названия файлов выглядят как...

Разобраться в скрипте принимающим письма и атачи
Всем привет!!!! Товарищи особо в этом языке не разбираюсь, вернее совсем не разбираюсь( но очень...

НУжно сохранять атачи мыла в физическую папку
Всем привет!!! Опишу задачу: Есть мыло, на него каждый день падают файлы, файлы закодированы UUE...

Колекция програм
Насобирал немного програм по Паскалю и решил разместить здесь!!! В архиве собраны програмы по:...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru