Форум: "Начинающим";
Текущий архив: 2014.06.22;
Скачать: [xml.tar.bz2];
Вниз3=4 sizeof? Найти похожие ветки
← →
Petroff-1 (2013-08-26 01:53) [0]Объявлена запись в 3 байта, а sizeof показывает 4, кому верить?
TRes = record
ccs:byte;
doc:word;
end;
pp:TRes;
showmessage(intToStr(sizeof(pp))); // =4!
В результате при использовании F: File of TRes; файл больше за счёт каждого лишнего байта в записи Write(F,pp);
Что делать как заставить писать 3 байта в файле, числом не кратным двойке, отключив запись мусорного выравнивания чётности sizeof?
← →
Германн © (2013-08-26 02:08) [1]
> Объявлена запись в 3 байта, а sizeof показывает 4, кому
> верить?
Верить sizeof. А 3 это только вам кажется.
← →
Petroff-1 (2013-08-26 02:13) [2]а три никак не сделать? Это влияет на считывание, лишнее не хочется в файл тащить.
Или записывать кусочками - byte, word, без типов?
← →
Германн © (2013-08-26 02:19) [3]
> Petroff-1 (26.08.13 02:13) [2]
>
> а три никак не сделать?
Запросто:TRes = packed record
ccs:byte;
doc:word;
end;
Подробности тут: http://docwiki.embarcadero.com/RADStudio/XE3/en/Structured_Types
← →
Германн © (2013-08-26 02:21) [4]Но выиграв в размере, проиграешь в скорости.
← →
Petroff-1 (2013-08-26 02:27) [5]Спасибо большое, работает!!!
Скорость не важна, главное размер и истинные данные подряд
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.06.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c