Сжатие текстов исключительно средствами языка 1С
Разработка - Защита ПО и шифрование
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Цель данной обработки это сжатие текстов.
Поскольку в 1С никогда не требовалось сжимать исходные коды или тексты, то применимость данных методов сомнительна.
Обработка была написана с целью «размять мозг» и для развлечения.
Программа распространяется «Как есть», никаких гарантий и ответственности не подразумевает.
Возможно полезным побочным эффектом работы данного приложения является нечитаемость текстов при сжатии, но в платформе 1С и так предусмотрено сжатие текстов исходных кодов, а так же защита при помощи криптографии, путем установки пароля на тексты модулей
Сжатие (избавление от избыточности) текста при большом количестве итераций происходит довольно медленно и требует много времени, т.к многократно проходит по сжимаемому тексту.
В самом нижнем поле обработка создает текст который можно просто вставить в код своего модуля и данный текст распакуется при исполнении, так называемый «Самораспаковывающийся архив или SFX». Кстати текст который вы сейчас читаете так-же запакован и хранится в коде в запакованном виде, а при запуске обработки выполняется процедура распаковки.
Инструкция.
Для сжатия текста необходимо скопировать или ввести сжимаемый текст в верхнее поле ввода «Исходный», указать максимальное количество итераций для сжатия и нажать на кнопку «Упаковать». Через некоторое время (приблизительно 5 минут) программа заполнит остальные поля формы обработки упакованным текстом и «Разделители».
В окне сообщений будет выведена статистика сжатия: за сколько итераций произошло сжатие.
Строка разделителей по сути является ключом для распаковки сжатого текста, длина этого ключа всегда равна количеству затраченных итераций.
Пример использования:
Функция НайтиОптимальноеСловоСжатия(СтруктураПараметров)
Успешно = Ложь;
Текст = СтруктураПараметров.Текст;
СтруктураПараметров.Разделитель = Лев(НайтиНеиспользованныеСимволы(Текст),1);
Если СтруктураПараметров.Разделитель = "" Тогда Возврат Ложь; КонецЕсли;
Т="ЕслиVСжатl94ейaДлdовi8аvКонецo - s + tин0имальнkЦикл_СтрP ПоA;BS
| 5AзицияvWtasOтр9(8)R o_а;DПолi0аd0ыKPокаvL9ВсегоvZ9lогоvXМ0kая9C5 B = 3Разделител4lие6PуктураПараметрi.7Текст8d0а9 Z3сR;5K3Цел(сR / 2);5a3P9(74и)t1;5C3ZO1; 5dя 632A K _5 dяW31A СRs6 _ BL3Сред(8,W, 6)SПiтор3PЧислоВхождений(8,L)SX3Zt6O(6s1) *AвторSV C > X Тогда B C3XS 7ОптkоеСлiо3LS 7636S Успешно3Ист0аSoV; 5DD";
for а=1 to 32 do в=Mid("Vladivost0k_PAS5WORDKLZXCB346789",а,1);б=find(Т,в);Т=StrReplace(Mid(Т,б+1),в,Лев(Т,б-1));enddo;
Выполнить(Т);
Возврат Успешно;
КонецФункции
Вступайте в нашу телеграмм-группу Инфостарт