Подскажите, есть ли в 1с аналог мапинга файла и структур как в С++ например.
Т.е. у меня есть двоичный файл структуру, которого я знаю, например:
struct{
a : byte;
b: dword;
c: byte;
} structfile
Можно как-то загрузить файл в память, считывать данные определенным размером и работать с ними как со структурой? И можно ли создать структуру, в которой элементы разного размера?
Спасибо.
необходимо зарегистрироваться для просмотра ссылки есть пример чтения файла. Но смаппить его в структуру вам придется вручную: читать побайтно и заполнять свою структуру.
Спасибо. В предложенном примере допущена ошибка конечно (в загружаемом варианте, т.к. он отличается от выложенного в тексте). Там ведется работа с типом данных РезультатЧтенияДанных, а должен вестись с БуферДвоичныхДанных. Пропущена одна операция. Но в принципе это не важно, просто к тому, что скачиваемый пример нерабочий, хоть и легко правится.
Но возник второй вопрос. В свойствах двоичного буфера я нашел только
ПрочитатьЦелое16 (ReadInt16)
ПрочитатьЦелое32 (ReadInt32)
ПрочитатьЦелое64 (ReadInt64)
Есть ли возможность читать float? Или прочитать 4 байта и как-то преобразовать в float?
DiakonX @ 07.08.21, 11:09 необходимо зарегистрироваться для просмотра ссылки
,
я могу ошибаться, но на сколько я понимаю суть происходящего, когда читаешь по байтам, то читаешь только целые числа. Если у вас там записано float, то записано оно все равно будет набором целых чисел. И вам должно быть известно, наверное, что из этого набора цифра до точки, что после.
Vofka @ Сегодня, 9:22 необходимо зарегистрироваться для просмотра ссылки
,
Все немного сложнее. Есть стандарт для float IEEE754.
Вот немного текста по данной теме необходимо зарегистрироваться для просмотра ссылки
Потребуются побитовые операции. Не хотелось так усложняться. Но если стандартных методов 1С не предлагает, то наверное придется.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.