|
v7: Преобразование текста в HEX | ☑ | ||
|---|---|---|---|---|
|
0
victuan1
18.05.16
✎
09:40
|
Поделитесь функцией для преобразования текста в шестнадцатеричные коды его символов на языке 1С 7.7
По сути нужен аналоги функции TextToHex, имеющейся в среде VisualBasic Вот пример этой функции в онлайне: http://crypt-online.narod.ru/crypts/text2hex |
|||
|
1
ДенисЧ
18.05.16
✎
09:41
|
Не стыдно? С таким-то хвостиком?
|
|||
|
2
Mikeware
18.05.16
✎
09:42
|
(1) это не хвост, сказал волк и покраснел...©
|
|||
|
3
ДенисЧ
18.05.16
✎
09:43
|
(2) Паш, ляг.
))))) |
|||
|
4
victuan1
18.05.16
✎
09:48
|
(1) ну я придумал такой вариант:
Функция Из_10_В_Любую(Знач Значение=0,Нотация=36) Экспорт Если Нотация<=0 Тогда Возврат("") КонецЕсли; Значение=Число(Значение); Если Значение<=0 Тогда Возврат("0") КонецЕсли; Значение=Цел(Значение); Результат=""; Пока Значение>0 Цикл Результат=Сред("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Значение%Нотация+1,1)+Результат; Значение=Цел(Значение/Нотация) ; КонецЦикла; Возврат Результат; КонецФункции Процедура Сформировать() Сообщить(арг); стр = ""; для й = 1 по СтрДлина(арг) Цикл стр = стр+Из_10_В_Любую(КодСимв(Сред(арг,й,1)),16) КонецЦикла; Сообщить(стр); КонецПроцедуры Но может есть более изящный способ? |
|||
|
5
victuan1
18.05.16
✎
09:58
|
После оптимизации получился такой результат:
Функция TextToHex(Зн) Рез = ""; для й = 1 по СтрДлина(Зн) Цикл Значение = КодСимв(Сред(зн,й,1)); Результат=""; Пока Значение>0 Цикл Результат=Сред("0123456789ABCDEF",Значение%16+1,1)+Результат; Значение=Цел(Значение/16) ; КонецЦикла; Рез = Рез+Результат КонецЦикла; Возврат Рез; КонецФункции Получается сам себе и ответил. Может что-то не учел? В строке не будет кириллицы. |
|||
|
6
Mikeware
18.05.16
✎
10:00
|
(5) да какя разница, будет кирилица или нет. каждый байт должер преобразоваться в 2 хекса.
|
|||
|
7
ДенисЧ
18.05.16
✎
10:04
|
(6) Про уникод мы по старости не помним? ))
|
| Форум | Правила | Описание | Секции | Поиск |