|
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
и я дал не готовое решение, а направление для мысли
там возможно перед получит строку нужно будет указатель сдвигать на начало, надо проверять
|
|