Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Двоичные данные: мапинг файла и структур как в С++
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
DiakonX
Подскажите, есть ли в 1с аналог мапинга файла и структур как в С++ например.
Т.е. у меня есть двоичный файл структуру, которого я знаю, например:
struct{
a : byte;
b: dword;
c: byte;
} structfile

Можно как-то загрузить файл в память, считывать данные определенным размером и работать с ними как со структурой? И можно ли создать структуру, в которой элементы разного размера?

Спасибо.
Vofka
необходимо зарегистрироваться для просмотра ссылки есть пример чтения файла. Но смаппить его в структуру вам придется вручную: читать побайтно и заполнять свою структуру.
DiakonX
Спасибо. В предложенном примере допущена ошибка конечно (в загружаемом варианте, т.к. он отличается от выложенного в тексте). Там ведется работа с типом данных РезультатЧтенияДанных, а должен вестись с БуферДвоичныхДанных. Пропущена одна операция. Но в принципе это не важно, просто к тому, что скачиваемый пример нерабочий, хоть и легко правится.

Но возник второй вопрос. В свойствах двоичного буфера я нашел только
ПрочитатьЦелое16 (ReadInt16)
ПрочитатьЦелое32 (ReadInt32)
ПрочитатьЦелое64 (ReadInt64)

Есть ли возможность читать float? Или прочитать 4 байта и как-то преобразовать в float?
Vofka
DiakonX @ 07.08.21, 11:09 необходимо зарегистрироваться для просмотра ссылки ,
я могу ошибаться, но на сколько я понимаю суть происходящего, когда читаешь по байтам, то читаешь только целые числа. Если у вас там записано float, то записано оно все равно будет набором целых чисел. И вам должно быть известно, наверное, что из этого набора цифра до точки, что после.
DiakonX
Vofka @ Сегодня, 9:22 необходимо зарегистрироваться для просмотра ссылки ,
Все немного сложнее. Есть стандарт для float IEEE754.
Вот немного текста по данной теме необходимо зарегистрироваться для просмотра ссылки
Потребуются побитовые операции. Не хотелось так усложняться. Но если стандартных методов 1С не предлагает, то наверное придется.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.