#0
by 0level
как декодировать base64 в двоичные данные? Base64Значение(Объект.Реквизит1) выдает шестнадцатиричные данные
#7
by 0level
так как потом их нужно часть в 10-чные числа, а часть в строку. вот подскажите как? )))
#11
by 0level
A400F0AD5307EA32313200000000003C2B54C1FA8C4C0C400000000C8D0C4D0000000000000000000000000000002ADB42104C0C8B8C000010000000000181FF70DA4C6A6041D9C60000000000000000000000000000000186A029870D4018000000
#12
by БледноЗолотистый
И тебе легче будет видеть 1010010000000000111100001010110101010011000001111110101000110010 ???
#14
by 0level
да так как передо мной инструкция в которой указано количество двоичных символов для расшифровки. например 1 номер 50 символов перевести в десятичное число. 2 название 56 символов перевести в строку
#22
by 0level
встроенные функции какие в 1с есть для работы с двоичными данными. нужно отсчитывать биты. допустим первые 10 преобразовать в число, потом 20 в строку.
#24
by МихаилМ
преобразование в различные системы счисления - школьная задача. Вам на форум школьников.
#25
by Serginio1
Почему? Во многих случаях для экономии используют некое количество битов. Например для архивирования.
#31
by sda553
Двоичные данные можно только записать в файл в 1с. А вот чтобы прочитать определенные байты с определенным смещениемю опытные 1сники (по крайней мере я) наборот преобразовывают это в Base64 и работают как со строкой, делая с этими данными все, что ты хочешь.
#37
by Serginio1
Бери HexBinary из там 2 символа это 1 байт. Легко достигает через битовое AND и маски с первыми 11 единицами остальные 0 можно использовать Word (2 байта). Остальные получаем смещение влево на 11 битов
#39
by sda553
то дополняй их. Например тебе надо прочитать с 40-й позиции 5 байт 40*8/6=53 символа (2бита в остатке), нам нужен первый 53-й символ (нумеруем символы с нуля) 45*8/6=60 символов т.е. нам нужно прочитать с 53 по 59-ый символ, преобразовать их в двоичную строку и отрезать два младших бита
#43
by etc
ниче не понял. ... 1 номер 50 символов перевести в десятичное число. 2 название 56 символов перевести в строку ... 50 каких символов? однобайтовых? двухбайтовых? в двоично-десятичном виде?
#44
by 0level
есть строка в base64, ее нужно декодировать в "единицы и ноли" (двоичный код). Потом по схеме отсчитывать биты и переводить в десятеричную систему числа, и слова. Например(из головы) с 1 - 15 бит закодировано число (ОГРН), с 16-50 бит название компании.
#45
by 0level
я в 1с получил функцией base64 вот такую строку A400F0AD5307EA32313200000000003C2B54C1FA8C4C0C400000000C8D0C4D0000000000000000000000000000002ADB42104C0C8B8C000010000000000181FF70DA4C6A6041D9C60000000000000000000000000000000186A029870D4018000000 что дальше, пока не совсем ясно. спасибо что помогаете, народ!!
#46
by sda553
Извиняйте, ощущение, будто я ученикам третьего класса пытаюсь теорему пифагора объяснить. - а что такое прямой угол? - а что такой "квадрат"?
#48
by zulu_mix
ггг... тс решил что двоичные данные это 10010110 и решил по быстрому в 2 строки навалять конвертер из 16-ричного кода в двоичный
#49
by 0level
тяжко. одни говорят что у функции Base64Значение(<Строка>) Параметры: Тип: Строка. Строка, закодированная по алгоритму base64. Возвращаемое значение: Тип: ДвоичныеДанные!!!!!!!!!!!!!!!!!!! вы говорите что это 16-ричный. то что я написал выше результат Этот функции Base64Значение(<Строка>). так что она выдает 16-ричн код или двоичный? Я правильно понял что надо писать функцию конвертер из 16 в двоичный и такой функции нет в 1с? Кого раздражают мои глупые вопросы, можете не отвечать? никого же не заставляем. Всем остальным спасибо за терпение ))))
#50
by zulu_mix
открой блокнотом файл экселя. что ты увидишь? набор невнятных символов. это и есть двоичные данные. а уж в каком виде они будут тебе представлены - дело просмотрщика. он тебе и в двоичном и в шестнадцатеричном, и в ассемблере показать может.
#53
by Гобсек
В этой статье листинг процедуры, которая преобразовывает строку в кодировке Bes64 в массив байтов и обратно. Только что написал :-)
#55
by Serginio1
Ты 25 читал? Ты из Двичных данных можешь получить шестнадцатиричное представление и работай с ним ТипhexBinary = ФабрикаXDTO.Тип(";;, "hexBinary"); Я уже не говорю о том, что с двичными данными проще работать на других языках.
#56
by 0level
сообщает вот эту строку A400F0AD5307EA32313200000000003C2B54C1FA8C4C0C400000000C8D0C4D0000000000000000000000000000002ADB42104C0C8B8C000010000000000181FF70DA4C6A6041D9C60000000000000000000000000000000186A029870D4018000000 Как мне отсчитать первые 50 бит перевести их в десятичные, потом следующие 56 бит перевести в 7 символов?
#60
by 0level
{Форма.Форма.Форма(278,4)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo') <<?>>КонецЕсли; (Проверка: Сервер) {Форма.Форма.Форма(282,15)}: Ожидается ключевое слово 'Тогда' ('Then') Если Индекс<<?>> Массив64[Индекс] = Ост; (Проверка: Сервер) {Форма.Форма.Форма(283,4)}: Ожидается ключевое слово 'КонецФункции' ('EndFunction') <<?>>КонецЕсли; (Проверка: Сервер) {Форма.Форма.Форма(286,32)}: Обнаружено логическое завершение исходного текста модуля Массив64[(А-1)*3 + 0] = Ост;<<?>> (Проверка: Сервер) {Форма.Форма.Форма(277,15)}: Ожидается ключевое слово 'Тогда' ('Then') Если Индекс<<?>> Массив64[Индекс] = Ост; (Проверка: Тонкий клиент) {Форма.Форма.Форма(278,4)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo') <<?>>КонецЕсли; (Проверка: Тонкий клиент) {Форма.Форма.Форма(282,15)}: Ожидается ключевое слово 'Тогда' ('Then') Если Индекс<<?>> Массив64[Индекс] = Ост; (Проверка: Тонкий клиент) {Форма.Форма.Форма(283,4)}: Ожидается ключевое слово 'КонецФункции' ('EndFunction') <<?>>КонецЕсли; (Проверка: Тонкий клиент) {Форма.Форма.Форма(286,32)}: Обнаружено логическое завершение исходного текста модуля
#62
by 0level
Спасибо Огромное. выводится сообщение, длина строки должна быть кратна 4. что это за проверка и для чего?
#63
by Гобсек
Длина строки в кодировке Base64 должна быть кратна четырем. Это происходит потому, что каждая тройка байтов по 8 битов преобразуется в четверку групп по 6 битов. Если байтов не 3, а 2 или 1, то на конце добавляются знаки "=". И все равно получается четверка. В моей процедуре есть две строчки, которые удаляют переносы строки. Строка64 = СтрЗаменить(Строка64, Символ, ""); Эти переносы 1С добавляет, для того, чтобы строку было удобнее рассмотреть в отладчике. После удаления этих символов длина строки должна быть кратна 4.
#64
by H A D G E H O G s
"Эти переносы 1С добавляет, для того, чтобы строку было удобнее рассмотреть в отладчике." Пффф. Святая простота.
#65
by 0level
еще раз для тупого, строка64 - это строка в base64 или а=Base64Значение(<Строка>) ? по второму массив возвращает десятичные числа. а нужно бинарный код
#67
by H A D G E H O G s
Ты просто психологически не готов. У меня такое было в 8 классе на геометрии.
#69
by 0level
есть base64 pHBIhg+RgDEyMzQ1NjccEiGD5GAMTAxAAAAADI0MTQAAAAAAAAAAAAAAAAAAACrbQpBMDMuMwAAQAAAAAAHB/3DaTGRqYEHZxgAAAAAAAAAAAAAAAAAAAC7gKYcNgBgAAAA== из него получаю функцией Base64Значение(<Строка>) A47048860F9180313233343536371C122183E4600C4C0C400000000C8D0C4D0000000000000000000000000000002ADB42904C0CCB8CC000100000000001C1FF70DA4C646A6041D9C60000000000000000000000000000002EE029870D8018000000 А нужно для начала )))))))))))))) получить вот эту бинарную строку 10100100011100000100100010000110000011111001000110000000001100010011001000110011001101000011010100110110001101110001110000010010001000011000001111100100011000000000110001001100000011000100000000000000000000000000000000001100100011010000110001001101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010101101101101000010100100000100110000001100110010111000110011000000000000000001000000000000000000000000000000000000000000011100000111111111011100001101101001001100011001000110101001100000010000011101100111000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011101110000000101001100001110000110110000000000110000000000000000000000000000000 Вопрос, как? возвращает массив с десятичными числами
#71
by Serginio1
Тяжело в 1С с побитовыми операциями. Но все в твоих руках. Например в Net есть класс BitArray.
#72
by Гобсек
Обрабатывай массив из десятичных чисел, указанный в . Например, можно каждое число перевести в двоичную систему в виде строки и строки склеить.
#74
by sda553
Это можно легко сделать еще на этапе строки Base64. Каждый символ это 6 битовый кусок.
#76
by Гобсек
Кстати да. Только придется вбивать таблицу перекодировки. А таблица перекодировки есть по ссылке
#79
by Гобсек
В статье из википедии по ссылке такая картинка, что посмотришь на нее и сразу все поймешь.
#82
by Infsams654
дак запиши и прочитай в строку - и не надо изголяться с Base64. В строке все уже будет побайтно в 2-чном коде. При чем, самое, интересное то, что задача ужа сама по себе проще решается - там сразу видно, число это или буква
#86
by H A D G E H O G s
Я бы на твоем месте задумался - зачем жертве ЕГЭ вообще двоичные данные в виде строки.
#87
by Infsams654
ЧтениеТекста. Прочитать в строку, КодСимвола каждого прочитанного символа строки - есть двоичные данные этого символа
#93
by oleg_km
Какие объемы планируешь перемалывать? Если честно, до сих пор не могу понять: что ТС нужно?
#94
by etc
а ты вчитайся в мой вопрос ему и поймешь что у него никакой конкретики в задаче нет. Он даже не знает сколько бит на 1 знак отведено в его двоичных данных.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7: в чем разница.... "Сохранить данные..." и "Выгрузить данные..."?
- Как прочитать данные из макета в котором двоичные данные?
- Content-Transfer-Encoding: base64 Подскажите чем его открыть... или сохранить в excel
- Как декодировать htmlspecialchars_decode в 1с
- Двоичные данные в XBase
- Строку в двоичные данные
- Двоичные данные в макетах отчетов ЗУП бюджет
- Во как зашифровать по Base64 из 1с
- Как декодировать Url (decodeURL)
- v7: Перекодировка текста из base64
В этой группе 1С
- Регламентные задания 1с 8.3
- План обмена. Повторно выгрузить измененные объекты за 14 год
- v8: Слетели права у администратора после обновления УТ
- v8: Очереди "Обновление прав доступа" в 1С Документообороте
- Аналитика учета партий
- Как пересчитать ЗП сотруднику, неправильно внесли дату больничного, Месяц закрыт
- вывод данных из 1с на экран тв
- Com-объект в таблицу значений
- Дополнительные реквизиты номенклатуры УТ11
- Внешняя печатная форма в БП 3.0 в формате WORD
- v7: Получить контекст формы
- Обновление БП 3.0 Не хватает памяти
- Универсальная ОСВ под Управляемые формы БП 3.0
- Долго загружается конфигуратор, не понятные запросы к БД
- Сеанс отсутствует или удален
- ВыполнитьОбработкуЗаданий() как работает?
- Как получить остаток по счету в разрезе субконто?
- потеря подключения с хранилищем
- Отладка ошибки мутабельных значений
- помощник перехода на ут 10,3