![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 17.01.2016
Сообщений: 8
|
![]()
Добрый день.
Нужно перевести на делфи запись typedef struct _FTSTAT { DWORD fEof : 1; DWORD fTim : 2; DWORD fReserved : 25; DWORD fDummy : 17; DWORD cbInQue; } FTSTAT; Я знаю только http://docwiki.embarcadero.com/RADSt...ields_(Delphi) . А что делать с полями с выравниванием 17, 25 ? |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
![]()
Так пойдет:
Код:
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. ![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 29.10.2015
Сообщений: 273
|
![]() |
![]() |
![]() |
![]() |
#4 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
Это не выравнивание, и битовые поля.
Код:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#5 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
Если даже в новых версиях Delphi нет ключевого слова bitpacked, то эту структуру напрямую на нем не описать, нужно придумывать обходные пути. ЕМПИП, ключевое слово bitpacked в FPC есть.
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
#6 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
А сам тип изобразить можно при помощи свойств и методов доступа. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 17.01.2016
Сообщений: 8
|
![]()
Спасибо Filka, min@y™.
Тогда на примере struct _CELL { // Declare CELL bit field unsigned short character : 8; // 00000000 ???????? unsigned short foreground : 3; // 00000??? 00000000 unsigned short intensity : 1; // 0000?000 00000000 unsigned short background : 3; // 0???0000 00000000 unsigned short blink : 1; // ?0000000 00000000 } CELL; буду пробовать делать так: var character, foreground,intensity,background , blink :word; type CELL = packed record b_character:byte; //8 bits b_foreground_intensity_background_b link:byte; //суммарно тоже 8 бит end; ......... character:=b_character; foreground:= (b_foreground_intensity_background_ blink and $7); intensity:= (b_foreground_intensity_background_ blink and $8) shr 3; background:= (b_foreground_intensity_background_ blink and $70) shr 4; blink:= (b_foreground_intensity_background_ blink and $80) shr 7; Последний раз редактировалось Djaba; 18.01.2016 в 10:28. |
![]() |
![]() |
![]() |
#8 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
Как звучит задание в оригинале? Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 17.01.2016
Сообщений: 8
|
![]()
Сам оригинал большой и особой ценности не представляет. Выяснилось, что через двоеточие обозначается количество бит, выделяемое в записи под переменную. Компилятор делфи скорее всего не поддерживает подобный синтаксис (ну я нигде не нашел), и отдельные биты приходится вручную распихивать по переменным.
Последний раз редактировалось Djaba; 18.01.2016 в 10:43. |
![]() |
![]() |
![]() |
#10 | ||
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
Цитата:
КОЛИСЬ ДАВАЙ, ПАРТИЗАН!!! Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
доступ к данным packed record | bulldog5293 | Общие вопросы Delphi | 0 | 07.04.2013 12:59 |
Доступ к данным packed record | Sergey_Murzinov | Общие вопросы Delphi | 1 | 27.11.2010 08:02 |
В чём различие записей Record от Packed Record? | Terran | Общие вопросы Delphi | 7 | 08.06.2010 17:14 |
Record / Packed Record | Alex Cones | Общие вопросы Delphi | 7 | 11.11.2009 10:43 |
Для чего нужен Packed? | VintProg | Общие вопросы Delphi | 10 | 03.08.2009 11:21 |