Формируется код из полей для последующей загрузки в систему, где ограничение на код составляет 45 символов. Но сформированный код часто больше 45 символов. Нужно каким-то образом захешировать этот код. В идеале нужно иметь возможность этот код восстановить. Выходит что-то похожее на архивирование. Во вложении файл с примером. Код, который необходимо архивировать в столбце А (должен быть уникальным). Поле 1 - 10-12 цифр Поле 2 - <=45 цифр с ведущими нулями Поле 3,4 - формат как в примере
Большое спасибо за помощь!
Формируется код из полей для последующей загрузки в систему, где ограничение на код составляет 45 символов. Но сформированный код часто больше 45 символов. Нужно каким-то образом захешировать этот код. В идеале нужно иметь возможность этот код восстановить. Выходит что-то похожее на архивирование. Во вложении файл с примером. Код, который необходимо архивировать в столбце А (должен быть уникальным). Поле 1 - 10-12 цифр Поле 2 - <=45 цифр с ведущими нулями Поле 3,4 - формат как в примере
Например, последовательности одинаковых символов длиннее четырех сворачивать в четырехсимвольную строку вида RNNC, где R - буква-признак (от repeat), NN - кол-во символов (от 05 до 99), С - собственно повторяемый символ (цифра).
Например, последовательности одинаковых символов длиннее четырех сворачивать в четырехсимвольную строку вида RNNC, где R - буква-признак (от repeat), NN - кол-во символов (от 05 до 99), С - собственно повторяемый символ (цифра).Gustav
Еще вариант. Если в "Поле2" будут одни цифры, то можно уменьшить кол-во символов почти вдвое. Достигается превращением каждой пары цифр в один код символа (байт). При этом строке "00" соответствует символ с кодом 34, "01" - 35, "02" - 36 и так далее. Символы с кодами 0-31 исключены как непечатаемые, символ с кодом 32 - как пробел (потому что толком не виден - неудобен), символ с кодом 33 (восклицательный знак) используется в качестве заключительного символа при нечетном кол-ве символов в строке. При этом предпоследний (нечетный, перед воскл.знаком) символ изображается в результирующей хеш-строке самим собой. Подробности - в файле.
Еще вариант. Если в "Поле2" будут одни цифры, то можно уменьшить кол-во символов почти вдвое. Достигается превращением каждой пары цифр в один код символа (байт). При этом строке "00" соответствует символ с кодом 34, "01" - 35, "02" - 36 и так далее. Символы с кодами 0-31 исключены как непечатаемые, символ с кодом 32 - как пробел (потому что толком не виден - неудобен), символ с кодом 33 (восклицательный знак) используется в качестве заключительного символа при нечетном кол-ве символов в строке. При этом предпоследний (нечетный, перед воскл.знаком) символ изображается в результирующей хеш-строке самим собой. Подробности - в файле.