Опять объемы Blob-ов

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Опять объемы Blob-ов

Сообщение muskin »

Приветствую всех!
Clarion 6.3 ABC

Чтобы долго не описывать свою проблему, сошлюсь на файл C:\Clarion6\Examples\Src\OLE\OLEDEMO2.PRJ
В качестве OLE-объекта выбираю Word.Document, в контейнер закачиваю вордовский файл объемом в 1MB, затем записываю в файл в Blob-поле.
Результирующий TPS-файл (SAVELINK.TPS) имеет уже объем в 3,17MB.
Ладно, думаю, мой исходный вордовский файл имеет кучу графики. Закачал простой текстовый файл в формате .DOC объемом в 36KB - на выходе (SAVELINK.TPS) 78KB.
Вопрос - откуда такое увеличение объемов?

Раньше задавал аналогичный вопрос по Image -> Blob. Сообщество вразумило меня тогда, может, сейчас подскажете?
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: Опять объемы Blob-ов

Сообщение Yufil »

У меня есть процедуры упаковки-распаковки блобов (через Zlib). Мож, пригодится...
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Re: Опять объемы Blob-ов

Сообщение muskin »

Спасибо за долгожданный ответ.
Если для Yufil-а не затруднительно, укажите источник или поделитесь знаниями.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: Опять объемы Blob-ов

Сообщение Yufil »

Да источник-то не секретен, совершенно открытая библиотека Zlib.
Эта библиотека среди прочих содержит процедуры работы с zip-файлами и упаковки строк в памяти.
Вот последним функционалом я и пользуюсь. Ещё, правда, предварительно нарезаю Blob на кусочки перед упаковкой и склеиваю после, но это вопрос вкуса (когда-то давно помогало экономить память и решало некоторые внутренние проблемы, но сейчас это совсем неважно).
Реально разрабатывал обучающие программы, где в базах было достаточно много плохоупаковываемых данных (формы экранов и тесты - XML, форматированные тексты - OLE, RTF и HML , картинки - BMP, WMF - ну и так далее...
Естественно, памяти жрало немеряно... Вот и написал пару процедур
PackBlob - упаковка Blob "на месте" и
UnpackBlob - распаковка Blob "на месте"

Подробности личной почтой yufil@mail.ru ICQ 57824439
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2584
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Re: Опять объемы Blob-ов

Сообщение Губин Игорь »

В восьмёрке это уже решается штатными средствами
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Re: Опять объемы Blob-ов

Сообщение muskin »

А все-таки, ради интереса - почему при записи в Blob-поле объем того же Doc-файла увеличивается как минимум в два раза по отношению к его реальному объему?
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2584
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Re: Опять объемы Blob-ов

Сообщение Губин Игорь »

Ты его КАК записываешь? Просто перегоняешь файл с диска в поле blob, или записываешь туда объект? Если просто файл с диска, то текст в студию, если объект, то уже отвечал.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Re: Опять объемы Blob-ов

Сообщение muskin »

Имено-так, контейнер для приема открыт (?OLEObject{PROP:DoVerb}=-2), открываю вторую копию Word-документа, из неё копирую в контейнер, затем записываю в Blob-поле. Вот и все.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2584
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Re: Опять объемы Blob-ов

Сообщение Губин Игорь »

Тогда я тебе уже писал. Ты загоняешь в блоб не текст документа, а контейнер с содержимым. Вот тебе и разница в объёмах.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Re: Опять объемы Blob-ов

Сообщение muskin »

Спасибо за ответ.
А что - если контейнер с содержимым, то это обязательное увеличение дискового пространства как минимум в два раза?
Куда теряются ресурсы, что - контейнер - это какая-то черная дыра?
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: Опять объемы Blob-ов

Сообщение Yufil »

Ну, можно предположить, что файл при сохранении на диск некоторым образом пакуется. А контейнер в памяти-нет...
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2584
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Re: Опять объемы Blob-ов

Сообщение Губин Игорь »

Юрий, святая правда.

Я тут долго писал то-же самое, а ты ухитрился сохранить пост раньше. Абыдно, ДА!
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
muskin
Активист
Сообщения: 114
Зарегистрирован: 08 Декабрь 2009, 21:16
Откуда: РК

Re: Опять объемы Blob-ов

Сообщение muskin »

Все это хорошо, но в в моей программе, в поле-отчета-Blob записываются Doc-документы (это полноценные документы с многочисленными таблицами), а полей очень много.
Памяти жрут очень много.
- "А что скажет КУПЕЧЕСТВО, в лице нашего Пахомыча"?
Прошу прощения за фамильярность.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2584
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Re: Опять объемы Blob-ов

Сообщение Губин Игорь »

Сбрасывай блобы во временные файлы и пакуй именно их. Обратный процесс аналогичен - сбрасываешь блов в файл и уже его открываешь объектом
Это я только кажусь дураком! На самом деле я полный идиот!
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: Опять объемы Blob-ов

Сообщение Yufil »

А зачем? Есть процедуры, пакующие Blob прямо на месте с созданием "упакованного блоба"... Записал OLE в Blob и тут же запаковал. И наоборот - достал, распаковал, показал...
Ответить