|
v7: Как заархивировать строку на лету | ☑ | ||
---|---|---|---|---|
0
gdn1974
12.06.15
✎
00:50
|
Подскажите! Как заархивировать строку на лету в 1С 77.
Как в этом примере Если ЗагрузитьВнешнююКомпоненту("1Cpp.dll")=0 Тогда Сообщить("Не удалось обнаружить компоненту 1Cpp.dll!"); КонецЕсли; стр1 = "999999999999Клен ты мой опавший, клен заледенелый, 99Что стоишь, нагнувшись, над метелью белой,9121231231231231231231999999999999999999999999999121231231231231231231999999999999999999999999999121231231231231231231999999999999"; стрН=стр1; стрН=""; BinData = СоздатьОбъект("BinaryData"); Сообщить("Длина строки1 "+СтрДлина(стр1)); BinData.pkCompress(стр1); СОобщить(">>"+стр1+"<<"); Сообщить("Длина строки2 "+СтрДлина(стр1)); BinData.pkDecompress(стр1); Сообщить("Длина строки после распаковки "+СтрДлина(стр1)); Если стр1 <> стрН Тогда Сообщить("Строки не равны","!!!"); Иначе Сообщить("Они равны","!!!"); КонецЕсли; |
|||
1
Duke1C
12.06.15
✎
08:37
|
Что значит "на лету"?
|
|||
2
gdn1974
12.06.15
✎
08:48
|
(1) Есть строка стр1 и её не сохраняя в файл сделать сжатой. Команды я нашел описал но у меня не работает.
|
|||
3
hhhh
12.06.15
✎
08:59
|
(2) может там задержку поставить? Подождать? секунды 3.
|
|||
4
Мимохожий Однако
12.06.15
✎
09:04
|
Сделай файл, сожми, удали первый файл.
|
|||
5
Маратыч
12.06.15
✎
09:08
|
(2) Вкорячить алгоритм архивации прямо в код.
|
|||
6
trad
12.06.15
✎
09:17
|
(0)
биндата1.записатьстроку(стр1) биндата1.компресс(биндата2) биндата2.прочитатьстроку(стр2) |
|||
7
gdn1974
12.06.15
✎
09:41
|
(6) помоги не получается
Если ЗагрузитьВнешнююКомпоненту("1Cpp.dll")=0 Тогда Сообщить("Не удалось обнаружить компоненту 1Cpp.dll!"); КонецЕсли; стр1 = "999999999999Клен ты мой опавший, клен заледенелый, 99Что стоишь, нагнувшись, над метелью белой,9121231231231231231231999999999999999999999999999121231231231231231231999999999999999999999999999121231231231231231231999999999999"; стрН=стр1; стр2=""; BinData1 = СоздатьОбъект("BinaryData"); BinData2 = СоздатьОбъект("BinaryData"); BinData1.записатьстроку(стр1); BinData1.компресс(BinData2); BinData2.прочитатьстроку(стр2); BinData.компресс(BinData2); {D:\АРХИВСТРОКУ.ERT(19)}: Поле агрегатного объекта не обнаружено (компресс) |
|||
8
trad
12.06.15
✎
09:47
|
биндата догадался перевести, а кмпресс нет?
pkcompress и я дал не готовое решение, а направление для мысли там возможно перед получит строку нужно будет указатель сдвигать на начало, надо проверять |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |