Подскажите, есть ли в 1с аналог мапинга файла и структур как в С++ например.
Т.е. у меня есть двоичный файл структуру, которого я знаю, например:
struct{
a : byte;
b: dword;
c: byte;
} structfile
Можно как-то загрузить файл в память, считывать данные определенным размером и работать с ними как со структурой? И можно ли создать структуру, в которой элементы разного размера?
Спасибо.
https://pro1c.org.ua/redirect.php?https://its.1c.ru/db/metod8dev/content/5917/hdoc есть пример чтения файла. Но смаппить его в структуру вам придется вручную: читать побайтно и заполнять свою структуру.
Спасибо. В предложенном примере допущена ошибка конечно (в загружаемом варианте, т.к. он отличается от выложенного в тексте). Там ведется работа с типом данных РезультатЧтенияДанных, а должен вестись с БуферДвоичныхДанных. Пропущена одна операция. Но в принципе это не важно, просто к тому, что скачиваемый пример нерабочий, хоть и легко правится.
Но возник второй вопрос. В свойствах двоичного буфера я нашел только
ПрочитатьЦелое16 (ReadInt16)
ПрочитатьЦелое32 (ReadInt32)
ПрочитатьЦелое64 (ReadInt64)
Есть ли возможность читать float? Или прочитать 4 байта и как-то преобразовать в float?
DiakonX @ 07.08.21, 11:09
,
я могу ошибаться, но на сколько я понимаю суть происходящего, когда читаешь по байтам, то читаешь только целые числа. Если у вас там записано float, то записано оно все равно будет набором целых чисел. И вам должно быть известно, наверное, что из этого набора цифра до точки, что после.
Vofka @ Сегодня, 9:22
,
Все немного сложнее. Есть стандарт для float IEEE754.
Вот немного текста по данной теме https://pro1c.org.ua/redirect.php?https://habr.com/ru/post/112953/
Потребуются побитовые операции. Не хотелось так усложняться. Но если стандартных методов 1С не предлагает, то наверное придется.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua