gifts2017

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

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

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

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

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

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

Свойства:

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

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

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

Методы:

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

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

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

Пример:

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

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Зубцов (iov) 07.01.11 23:05
Все прекрасно только вот:
1) каков процент сжатия
2) Сколько используется на рабочих конфах?
ну и дабы понять область применения - в каких целях использовалась?
2. Аркадий Кучер (Abadonna) 08.01.11 07:46
писать отдельную ВК ради только
ZLibEx.ZCompressStr
ZLibEx.ZDecompress? хм...
3. nicolas eliseev (nicxxx) 08.01.11 10:25
(1) процент сжатия не измерял, используется zlib, можно почитать его описание.
использую не так давно на одной конфе, ТиС 9.2 для хранения версий документов. реквизиты документа выгружаются в ТЗ, потом делаю ЗначениеВСтрокуВнутр() и результат сжимаю и записываю эту сжатую строку в справочник версий объектов
(2) ну покажи, как в 7.7 вызвать ZLibEx.ZCompressStr без внешней компоненты?
4. Ийон Тихий (cool.vlad4) 08.01.11 11:26
(3) :D просто нужны веские причины, чтобы сделать ВК только для zlibEx.zCompressStr. Вот потому (1) и спрашивал.
ЗЫ Алгоритм забавный - А производительность версионирования какова?
5. Аркадий Кучер (Abadonna) 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) 08.01.11 11:46
(4) производительность нормальная, документы исправляются каждый день, но небольшое количество, поэтому пара лишних секунд при проведении совсем не заметна.
(5) про экзешник не подумал, сделал компоненту, че тут криминального? перед тем как сделать, искал долго, подобный функционал есть только в binfiles.dll, но мне не совсем подходит. в нормальных сетках можно vkloader использовать и даже админы ниче не заметят.
PS.а можно я всякий раз, когда мне понадобится расширить функционал платформы 7.7, буду просить тебя добавить нужную мне фичу в твою miracle.dll? :)))
и я вобще не понял, че за синдром бога, Абадонна? если что-то сделано не по-твоему, то все, автор - враг народа?
7. Аркадий Кучер (Abadonna) 08.01.11 11:49
(6)
про экзешник не подумал, сделал компоненту, че тут криминального?

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

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

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

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

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

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