
записи с вариантами и вложенные записи, нужна помощь.
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 3
- Зарегистрирован: 03 июн 2009, 14:30
- Откуда: I live on the EARTH
- Контактная информация:
Всем привет, нужна помощь по записям с вариантами и вложенными записями. Во вложении есть схема, помогите пожалуйста описать это в паскале, заранее спасибо. 

- Вложения
-
- Вот как реализовать такое на Pascal.zip
- (6.81 КБ) 12 скачиваний
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Код: Выделить всё
type
v1 = record
Parameter1:<тип>;
case byte of
1 :( Parameter2:<тип>;
Parameter3:<тип> ;) ;
2 :( Parameter12:<тип> ;) ;
end;
-
- Сообщения: 3
- Зарегистрирован: 03 июн 2009, 14:30
- Откуда: I live on the EARTH
- Контактная информация:
А вот с этим не поможите. ВО вложении слегка измененная схема.
- Вложения
-
- Вот как реализовать такое на Pascal(добавлено).zip
- (7.26 КБ) 17 скачиваний
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Ну так, по аналогии не смогли сделать?
Так как пипы данных не указаны, то я буду считать, что вариант1 в обоих ветвях - это идентичные структуры, а Вариант2 - разные.
Также уточните V1 и V2 - это тоже варианты или это 2 поля типа "Объекты"?
Так как пипы данных не указаны, то я буду считать, что вариант1 в обоих ветвях - это идентичные структуры, а Вариант2 - разные.
Также уточните V1 и V2 - это тоже варианты или это 2 поля типа "Объекты"?
а как вместо "2" выделеным сверху, можно вставить множество?Naeel Maqsudov писал(а):Код: Выделить всё
type v1 = record Parameter1:<тип>; case byte of 1 :( Parameter2:<тип>; Parameter3:<тип> ;) ; [B][U] 2[/U][/B] :( Parameter12:<тип> ;) ; end;
у меня пишет отакую ошибку: Incompatible types: 'Byte' and 'Set'
хотя вроде по книжке сейчас читаю там просто вставили множество и все (
Так?
Только в данном случае все это выглядит бессмысленно, т.к. эти значения (варианты case) не сравниваются со значением никакой конкретной переменной.
Код: Выделить всё
type
v1 = record
Parameter1:<тип>;
case byte of
1 :( Parameter2:<тип>;
Parameter3:<тип> ;) ;
2..4, 6 :( Parameter12:<тип> ;) ;
end;
-
- Сообщения: 3
- Зарегистрирован: 03 июн 2009, 14:30
- Откуда: I live on the EARTH
- Контактная информация:
А параметры ввиде записи можно как-то реализовать?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
может я что то не так объясняю.
Выкладываю суть самой проблемы. помогите с описанием данных.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
может я что то не так объясняю.
Выкладываю суть самой проблемы. помогите с описанием данных.
- Вложения
-
- Имеются объекты V1.zip
- (7.65 КБ) 18 скачиваний
case Tracks: byte of
1: (Track1: Track);
[2..20]: ATracks: array[1..19] of Track;
ну вот мой Сase и так типа анаписано в книжке, но почему delphi множество не нравится ((
чо делать ? кто подскажет? )
автор, сор, увидил вопрос по моей теме ну и написал свой, подумал. может и тебе будет полезен ))
1: (Track1: Track);
[2..20]: ATracks: array[1..19] of Track;
ну вот мой Сase и так типа анаписано в книжке, но почему delphi множество не нравится ((
чо делать ? кто подскажет? )
автор, сор, увидил вопрос по моей теме ну и написал свой, подумал. может и тебе будет полезен ))
Это примочки только для компилятора, когда одна и та же структура может быть интерпретирована по разному. Типа как здесь:" писал(а):Только в данном случае все это выглядит бессмысленно, т.к. эти значения (варианты case) не сравниваются со значением никакой конкретной переменной.
Код: Выделить всё
T2DRect = packed record
case Integer of
0: (Left,Top,Right,Bottom : Double);
1: (TopLeft, BottomRight : T2DPoint);
end;
It's a long way to the top if you wanna rock'n'roll
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Потому, что "множеству" тут не место. Тут может быть только диапазон или значение или список из значений и диапазонов." писал(а):мой Сase и так типа анаписано в книжке, но почему delphi множество не нравится
Так что возьмите белую канцелярскую краску типа "Штрих" и книгу Вашу аккуратненько пофиксите
