ВК для упаковки строк в памяти

Опубликовал nicolas eliseev (nicxxx) в раздел Программирование - Внешние компоненты

ВК для упаковки строк в памяти

Компонента предназначена для упаковки строк в памяти, чтобы в дальнейшем хранить запакованные строки в БД 1С. Написана на Delphi.

Работа с компонентой.

У ВК есть 1 свойство и 2 метода.

Свойства:

УровеньСжатия (CompressionLevel)

может принимать следующие значения:

"None", "Fastest", "Default", "Max", если не указано, то будет использована степень сжатия Max.

Методы:

Упаковать (Zip)

Распаковать (Unzip)

перед вызовом метода Zip следует установить уровень сжатия.

Пример:

ИсходнаяСтрока = "здесь строка для упаковки";
Упаковщик = СоздатьОбъект("Addin.zipstring");
Упаковщик.УровеньСжатия = "Fastest";
СжатаяСтрока = Упаковщик.zip(ИсходнаяСтрока);
РаспакованнаяСтрока = Упаковщик.unzip(СжатаяСтрока);
 

Скачать файлы

Наименование Файл Версия Размер
zipstring
.zip 72,12Kb
07.01.11
35
.zip 72,12Kb 35 Скачать

См. также

Комментарии
1. Александр Зубцов (iov) 359 07.01.11 23:05 Сейчас в теме
Все прекрасно только вот:
1) каков процент сжатия
2) Сколько используется на рабочих конфах?
ну и дабы понять область применения - в каких целях использовалась?
2. Аркадий Кучер (Abadonna) 3658 08.01.11 07:46 Сейчас в теме
писать отдельную ВК ради только
ZLibEx.ZCompressStr
ZLibEx.ZDecompress? хм...
3. nicolas eliseev (nicxxx) 166 08.01.11 10:25 Сейчас в теме
(1) процент сжатия не измерял, используется zlib, можно почитать его описание.
использую не так давно на одной конфе, ТиС 9.2 для хранения версий документов. реквизиты документа выгружаются в ТЗ, потом делаю ЗначениеВСтрокуВнутр() и результат сжимаю и записываю эту сжатую строку в справочник версий объектов
(2) ну покажи, как в 7.7 вызвать ZLibEx.ZCompressStr без внешней компоненты?
4. Ийон Тихий (cool.vlad4) 41 08.01.11 11:26 Сейчас в теме
(3) :D просто нужны веские причины, чтобы сделать ВК только для zlibEx.zCompressStr. Вот потому (1) и спрашивал.
ЗЫ Алгоритм забавный - А производительность версионирования какова?
5. Аркадий Кучер (Abadonna) 3658 08.01.11 11:31 Сейчас в теме
(3)
ну покажи, как в 7.7 вызвать ZLibEx.ZCompressStr без внешней компоненты?

Начнем по порядку:
1. ZLibEx.ZCompressStr можно спокойно вызывать как экзюк с параметрами. Так и работает undeflat
Написать такое на Дельфи - как два байта отослать
2. Ты видимо не в курсе, что в сетках с НОРМАЛЬНЫМ администрированием, никакая ЗагрузитьВнешнююКомпоненту не пройдет, если 1С не запущена под правами локалього админа (а таковых прав у юзверьков в НОРМАЛЬНЫХ сетках НЕТ). И совершать танцы с бубном на так примерно 50 компах ради двух жалких методов сжатия - лично не для меня
3. А ВК надо писать примерно вот такие, чтобы уж не было жаль лишний раз зарегить ;) http://infostart.ru/public/59436/
P.S. Вставить туда упаковку не посчитал нужным, но это дело 3 минут с перекуром
6. nicolas eliseev (nicxxx) 166 08.01.11 11:46 Сейчас в теме
(4) производительность нормальная, документы исправляются каждый день, но небольшое количество, поэтому пара лишних секунд при проведении совсем не заметна.
(5) про экзешник не подумал, сделал компоненту, че тут криминального? перед тем как сделать, искал долго, подобный функционал есть только в binfiles.dll, но мне не совсем подходит. в нормальных сетках можно vkloader использовать и даже админы ниче не заметят.
PS.а можно я всякий раз, когда мне понадобится расширить функционал платформы 7.7, буду просить тебя добавить нужную мне фичу в твою miracle.dll? :)))
и я вобще не понял, че за синдром бога, Абадонна? если что-то сделано не по-твоему, то все, автор - враг народа?
7. Аркадий Кучер (Abadonna) 3658 08.01.11 11:49 Сейчас в теме
(6)
про экзешник не подумал, сделал компоненту, че тут криминального?

Криминального - НИЧЕГО, наоборот я всячески поддерживаю людей, которые программят не только на "языке домохозяек" 1С :)))
Просто уж добей в ВК еще че-нить, тогда ее и зарегить не жалко будет ;)
P.S. У меня синдром демона, а не Бога :))))
P.P.S.
нормальных сетках можно vkloader

В нормальных сетках можно и Miracle использовать, там есть метод RunAs
8. nicolas eliseev (nicxxx) 166 08.01.11 11:56 Сейчас в теме
(7) да че туда еще добивать... все уже сделали до меня:) сделай в miracle упаковку строк, буду твою ВК использовать, а в этой публикации большими буквами ссылку на miracle напишу :)
9. Аркадий Кучер (Abadonna) 3658 08.01.11 12:26 Сейчас в теме
А плюсик поставлю. За то, что ВК ;)
cool.clo; +1 Ответить
10. nicolas eliseev (nicxxx) 166 08.01.11 12:29 Сейчас в теме
11. Влад Кацманевич (cool.clo) 08.01.11 12:45 Сейчас в теме
אין השד נורא כל כך :D .....как его малюют +
12. Аркадий Кучер (Abadonna) 3658 08.01.11 18:56 Сейчас в теме
(8)
сделай в miracle упаковку строк

Плиз:
Процедура Сформировать()
	Стр1="- Господин Вопягин!  Вы обвиняетесь  в том, что семнадцатого  июня сего
	|года,  спрятавшись  в  кустах,  подсматривали  за  купающимися  женщинами...
	|Признаете себя виновным?
	|     Господин Вопягин усмехнулся чуть заметно в  свои великолепные, пушистые
	|усы и, сделав откровенное, простодушное лицо, сказал со вздохом:
	|     -  Что  ж  делать...  признаю! Но только  у меня  есть  смягчающие вину
	|обстоятельства...
	|     - Ага... Так-с. Расскажите, как было дело?"
	;
	Стр2=L.ZCompressString(Стр1);
	Стр3=L.ZDecompressString(Стр2);
	Сообщить(Стр1); 
	Сообщить(Стр2);
	Сообщить(Стр3);
КонецПроцедуры
...Показать Скрыть

... сейчас переопубликую
P.S. © Аркадий Аверченко
Прикрепленные файлы:
13. Сергей (Che) Коцюра (CheBurator) 3370 09.01.11 00:59 Сейчас в теме
Ну тогда, если по уму - надо и упаковку внешних файлов делать...
Стр2=L.ZCompressString(ИмяВнешнегоФайла);
.
но в двух вариантах (типа с флагом)
а) возвращается строка
б) возвращается ТЗ, со строками фиксированной длины
.
в принципе б) - есть подмножество а) (можно самому нарезать), не помню навскидку какой длины может быть строка в 7.7...?
.
и как вариант: ну и компрессить хорошо бы с использование только читабельных кодов, как это делаее UUENCODE, UUDECODE
.
14. Аркадий Кучер (Abadonna) 3658 09.01.11 06:52 Сейчас в теме
(13) Насчет файлов думал... Опять же: смотря какой длины. Если его сразу в буфер загнать в память - одно дело, поблочно - другое.
читабельных кодов, как это делаее UUENCODE, UUDECODE

А на фига тебе ее читать? ;) Можно, конечно, дополнительно строку обработать, сейчас просто практически стандартный zip
(можно самому нарезать)

Во-во! :D
15. Аркадий Кучер (Abadonna) 3658 09.01.11 13:56 Сейчас в теме
16. Константин (cabat) 01.06.11 14:09 Сейчас в теме
Супер! Очень полезная компонента, главное - маленькая.
Вот только не проверил пока - требует регистрации в реестре?
17. hvv 2002 (hvv2002) 5 05.11.13 13:28 Сейчас в теме
Попробовал, работает, но по моей проблемке не помогло :(. (упаковывал значениевстрокувнутр(), в моем случае огромный объект был и время терялось именно на это преобразование ). к данной компоненте нареканий нет, и думаю в ней ничего добавлять не надо, работу свою делает на 5.
Прикрепленные файлы:
info.html
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа