Опять объемы Blob-ов
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Опять объемы Blob-ов
Приветствую всех!
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. Сообщество вразумило меня тогда, может, сейчас подскажете?
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. Сообщество вразумило меня тогда, может, сейчас подскажете?
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Re: Опять объемы Blob-ов
У меня есть процедуры упаковки-распаковки блобов (через Zlib). Мож, пригодится...
Re: Опять объемы Blob-ов
Спасибо за долгожданный ответ.
Если для Yufil-а не затруднительно, укажите источник или поделитесь знаниями.
Если для Yufil-а не затруднительно, укажите источник или поделитесь знаниями.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Re: Опять объемы Blob-ов
Да источник-то не секретен, совершенно открытая библиотека Zlib.
Эта библиотека среди прочих содержит процедуры работы с zip-файлами и упаковки строк в памяти.
Вот последним функционалом я и пользуюсь. Ещё, правда, предварительно нарезаю Blob на кусочки перед упаковкой и склеиваю после, но это вопрос вкуса (когда-то давно помогало экономить память и решало некоторые внутренние проблемы, но сейчас это совсем неважно).
Реально разрабатывал обучающие программы, где в базах было достаточно много плохоупаковываемых данных (формы экранов и тесты - XML, форматированные тексты - OLE, RTF и HML , картинки - BMP, WMF - ну и так далее...
Естественно, памяти жрало немеряно... Вот и написал пару процедур
PackBlob - упаковка Blob "на месте" и
UnpackBlob - распаковка Blob "на месте"
Подробности личной почтой yufil@mail.ru ICQ 57824439
Эта библиотека среди прочих содержит процедуры работы с 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-ов
В восьмёрке это уже решается штатными средствами
Это я только кажусь дураком! На самом деле я полный идиот!
Re: Опять объемы Blob-ов
А все-таки, ради интереса - почему при записи в Blob-поле объем того же Doc-файла увеличивается как минимум в два раза по отношению к его реальному объему?
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
- Губин Игорь
- Шубуршун
- Сообщения: 2584
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Re: Опять объемы Blob-ов
Ты его КАК записываешь? Просто перегоняешь файл с диска в поле blob, или записываешь туда объект? Если просто файл с диска, то текст в студию, если объект, то уже отвечал.
Это я только кажусь дураком! На самом деле я полный идиот!
Re: Опять объемы Blob-ов
Имено-так, контейнер для приема открыт (?OLEObject{PROP:DoVerb}=-2), открываю вторую копию Word-документа, из неё копирую в контейнер, затем записываю в Blob-поле. Вот и все.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
- Губин Игорь
- Шубуршун
- Сообщения: 2584
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Re: Опять объемы Blob-ов
Тогда я тебе уже писал. Ты загоняешь в блоб не текст документа, а контейнер с содержимым. Вот тебе и разница в объёмах.
Это я только кажусь дураком! На самом деле я полный идиот!
Re: Опять объемы Blob-ов
Спасибо за ответ.
А что - если контейнер с содержимым, то это обязательное увеличение дискового пространства как минимум в два раза?
Куда теряются ресурсы, что - контейнер - это какая-то черная дыра?
А что - если контейнер с содержимым, то это обязательное увеличение дискового пространства как минимум в два раза?
Куда теряются ресурсы, что - контейнер - это какая-то черная дыра?
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
Re: Опять объемы Blob-ов
Ну, можно предположить, что файл при сохранении на диск некоторым образом пакуется. А контейнер в памяти-нет...
- Губин Игорь
- Шубуршун
- Сообщения: 2584
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Re: Опять объемы Blob-ов
Юрий, святая правда.
Я тут долго писал то-же самое, а ты ухитрился сохранить пост раньше. Абыдно, ДА!
Я тут долго писал то-же самое, а ты ухитрился сохранить пост раньше. Абыдно, ДА!
Это я только кажусь дураком! На самом деле я полный идиот!
Re: Опять объемы Blob-ов
Все это хорошо, но в в моей программе, в поле-отчета-Blob записываются Doc-документы (это полноценные документы с многочисленными таблицами), а полей очень много.
Памяти жрут очень много.
- "А что скажет КУПЕЧЕСТВО, в лице нашего Пахомыча"?
Прошу прощения за фамильярность.
Памяти жрут очень много.
- "А что скажет КУПЕЧЕСТВО, в лице нашего Пахомыча"?
Прошу прощения за фамильярность.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
- Губин Игорь
- Шубуршун
- Сообщения: 2584
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
Re: Опять объемы Blob-ов
Сбрасывай блобы во временные файлы и пакуй именно их. Обратный процесс аналогичен - сбрасываешь блов в файл и уже его открываешь объектом
Это я только кажусь дураком! На самом деле я полный идиот!
Re: Опять объемы Blob-ов
А зачем? Есть процедуры, пакующие Blob прямо на месте с созданием "упакованного блоба"... Записал OLE в Blob и тут же запаковал. И наоборот - достал, распаковал, показал...