#0
by Aleksey1989
Добрый вечер. Подскажите, пжл, как можно средствами 1С закодировать строку в hex-кодировке, есть ли встроенные функции?
#3
by NorthWind
КодСимв каждого символа строки и потом его в 16-ричное представление - функция тут в книге знаний была, помню. Так что, видимо, все можно.
#7
by Mauser
Тогда с учетом того, что код будет 16-битным. Порядок байт в результате выберешь по вкусу.
#9
by NorthWind
Функцию преобразования числа в 16-ричный код можно написать и самому. Делишь число на 16 с остатком. Остаток от деления - значение от 0 до 15 - это и будет очередная цифра 16-ричного числа (только нужно будет преобразовать 10,11,12,13,14,15 в A,B,C,D,E,F соответственно). Частное от деления вновь делите на 16 и опять остаток от деления - следующая цифра, полученное частное опять на 16... и так до тех пор пока очередное частное не окажется меньше 16. Это будет последняя цифра искомого числа.
#11
by NorthWind
это смотря какое число. Если у вас исходное число 17, то итерация будет одна. Остаток получится 1 и частное тоже 1, результат - 11h.
#12
by NorthWind
ну и да, если стоит задача "нарисовать" сколько-то байтовое представление, то результат надо выровнять нулями и пробелами до нужного вида.
#14
by Serginio1
ТипhexBinary = ФабрикаXDTO.Тип(";, "hexBinary"); Сообщить(ДвоичныеДанные.ЛексическоеЗначение);
#19
by Serginio1
Вот с нетом это делается моментом, куча функций. А с чистым 1С нужно постоянно приседать.
#24
by Zamestas
+ Нужная отдельная секция: 1С 8 хочу странного. В которой ТС обязательно должен объяснить что, и для чего он хочет получить странного и накуя это ему надо.
#25
by Serginio1
Ты не поверишь, но сейчас в 1С куча народа использует .Net в качестве СОМ. Ответ большой.
#28
by Torquader
Начнём с того, что большая часть торгового оборудования на Linux заводится совершенно по-другому, нежели в Windows.
#30
by NorthWind
в принципе, ничего страшного в этом нет, можно и в 1С много чего делать. Но а) нужно знать алгоритмы, и б) мешает отсутствие битовой арифметики и полноценной поддержки двоички.
#31
by Zamestas
Для начала нужно понять - почему какую то информацию нельзя получить и переварить платформой.
#33
by NorthWind
ну, пару раз был интерес считать произвольные данные из бинарника. Получить несколько значений из серединки - байтовых, двухбайтовых.
#36
by Zamestas
Пример можно в студию? Я (каюсь) - рассчитывал вхождения IP адресов хостов/подсетей в подсети с произвольной маской (и тех и других) без "двоички" без битовых масок и особых преобразований (<= >= хватило).
#37
by Serginio1
Ну на самом деле обычно к любому оборудованию идет API на C#. Сейчас с выходом .Net Core будут делать о по NetStandart, так как он кроссплатформенный.
#38
by NorthWind
что именно не понятно? Есть на диске файл, двоичный. В нем 10К разных байт от 0 до 255. Нужно по смещению, скажем, 20, определить какое 16-битовое число лежит. Как вы это в 1С сделаете?
#39
by NorthWind
файлы складываются сторонней программой, попросить ее складывать в тексте или в XML - нельзя
#42
by Torquader
ЧтениеТекста в нужной кодировке позволит это сделать - конечно - не быстро и с бубном - но можно.
#43
by Serginio1
Для Windows обязательно идут на C#. С выходом .Net Core будут делать кроссплатформенные библиотеки. Просто .Net Core в релизе меньше месяца
#45
by NorthWind
ну так-то да. Только вообще проще всего было бы, если бы бинарка нормально обрабатывалась средствами языка. Т.е. если бы по ДвоичнымДанным можно было бы позиционироваться, получать из них куски требуемого размера, делать с ними битовые операции и преобразовывать в другие типы данных. И, кстати, это обещают сделать.
#46
by Torquader
Я видел кучу оборудования, где драйвер с примерами на Си - особенно это Windows CE касается, хотя там тоже есть Net.
#49
by Torquader
Я расчёт Md5 писал на VbScript, где тоже с битовыми операциями не очень - делал через умножение и деление с остатком и разбивая каждый регистр на две переменных, а потом это чудо запихивал в 1С 7.7 - и работало.
#52
by Zamestas
+ Оно может быть ленивым - типо местного пофигуратора - есть исходные -> шаблон (аля XML под конкретное ПО) для преобразования в конечные данные и обратно.
#53
by Serginio1
Можно и сейчас обернуть C++ библиотеки через Interop. Только у меня нет ни торгового оборудования, но Линукса.
#54
by Zamestas
Если будет возможность крутить команды драйвера ПО через какой нить аналог пофигуратора - будет все.
#56
by Torquader
Проблема была в том, что пришлось отлаживать Dll драйвера, так как в ней просто оказалась ошибка, и несколько последних символов кода, если он больше 16 - шли коту под хвост. И потом, для CE проще на Си писать - оно быстрее работает.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как в эксель строку из цифер выгрузить как строку, а не число?
- КАк при нажатии на строку в ТЗ добавить эту строку в Табличную часть докуме
- Скопировать одну строку ТЗ в другую строку ТЗ
- А как длинную строку с кучей кавычек в строку преобразовать?
- v7: Как в 7.7 скопировать строку ТЗ в строку документа?
- v7: Преобразовать строку в HEX Строку в 1С 7.7
В этой группе 1С
- Подписка на событие "ПриЗаписи" или "ПередЗаписью" для регистра накопления.
- можно ли использовать видеоочки вместо монитора и почему ?
- Обмен данными через конвертацию данных
- Зарплата в УПП 1.3
- Способы распределения статей затрат организаций
- УТ 11 Номенклатура, продаваемая совместно
- Печать HTML документ через подсистему печати БСП
- Медленное сложение строк
- Как объединить ячейки в табличной части?
- А как узнать, что у пользователя интерфейс такси?
- 1С:Документооборот, как запретить создавать процесс для незарегистрированного
- БГУ 1.0 Розничные продажи
- Розница 2.2 РИБ авт. синхронизация
- Ошибка при обмене РБ. Тип не определен
- ЗГУ 3.1 расчетная ведомость 0504402
- В данной транзакции уже происходили ошибки
- Как поступить если объект на форме изменен "извне" программно?
- Видимость строк в журнале документов
- Как закрасить ячейки печатной формы?
- В СКД вывести номер группировки первой колонкой