Страница 1 из 3

записи с вариантами и вложенные записи, нужна помощь.

Добавлено: 03 июн 2009, 15:30
renx
Всем привет, нужна помощь по записям с вариантами и вложенными записями. Во вложении есть схема, помогите пожалуйста описать это в паскале, заранее спасибо. :)

Re: записи с вариантами и вложенные записи, нужна помощь.

Добавлено: 03 июн 2009, 15:43
Naeel Maqsudov

Код: Выделить всё

type
  v1 = record
    Parameter1:<тип>;
    case byte of
      1 :( Parameter2:<тип>;
         Parameter3:<тип> ;) ;
      2 :( Parameter12:<тип> ;) ;
    end;

Re: записи с вариантами и вложенные записи, нужна помощь.

Добавлено: 03 июн 2009, 16:16
renx
А вот с этим не поможите. ВО вложении слегка измененная схема.

Re: записи с вариантами и вложенные записи, нужна помощь.

Добавлено: 04 июн 2009, 16:50
Naeel Maqsudov
Ну так, по аналогии не смогли сделать?
Так как пипы данных не указаны, то я буду считать, что вариант1 в обоих ветвях - это идентичные структуры, а Вариант2 - разные.
Также уточните V1 и V2 - это тоже варианты или это 2 поля типа "Объекты"?

Re: записи с вариантами и вложенные записи, нужна помощь.

Добавлено: 05 июн 2009, 01:39
ronayt
Naeel Maqsudov писал(а):

Код: Выделить всё

type
  v1 = record
    Parameter1:<тип>;
    case byte of
      1 :( Parameter2:<тип>;
         Parameter3:<тип> ;) ;
     [B][U] 2[/U][/B] :( Parameter12:<тип> ;) ;
    end;
а как вместо "2" выделеным сверху, можно вставить множество?
у меня пишет отакую ошибку: Incompatible types: 'Byte' and 'Set'
хотя вроде по книжке сейчас читаю там просто вставили множество и все (

.

Добавлено: 05 июн 2009, 12:09
BBB
Так?

Код: Выделить всё

type
  v1 = record
    Parameter1:<тип>;
    case byte of
      1 :( Parameter2:<тип>;
         Parameter3:<тип> ;) ;
      2..4, 6 :( Parameter12:<тип> ;) ;
    end;
Только в данном случае все это выглядит бессмысленно, т.к. эти значения (варианты case) не сравниваются со значением никакой конкретной переменной.

Re: записи с вариантами и вложенные записи, нужна помощь.

Добавлено: 05 июн 2009, 12:25
renx
А параметры ввиде записи можно как-то реализовать?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
может я что то не так объясняю.
Выкладываю суть самой проблемы. помогите с описанием данных.

Re: записи с вариантами и вложенные записи, нужна помощь.

Добавлено: 05 июн 2009, 13:02
ronayt
case Tracks: byte of
1: (Track1: Track);
[2..20]: ATracks: array[1..19] of Track;

ну вот мой Сase и так типа анаписано в книжке, но почему delphi множество не нравится ((
чо делать ? кто подскажет? )
автор, сор, увидил вопрос по моей теме ну и написал свой, подумал. может и тебе будет полезен ))

Re: записи с вариантами и вложенные записи, нужна помощь.

Добавлено: 05 июн 2009, 14:07
somewhere
&quot писал(а):Только в данном случае все это выглядит бессмысленно, т.к. эти значения (варианты case) не сравниваются со значением никакой конкретной переменной.
Это примочки только для компилятора, когда одна и та же структура может быть интерпретирована по разному. Типа как здесь:

Код: Выделить всё

  T2DRect   = packed record
              case Integer of
                   0: (Left,Top,Right,Bottom : Double);
                   1: (TopLeft, BottomRight  : T2DPoint);
              end;

Re: записи с вариантами и вложенные записи, нужна помощь.

Добавлено: 05 июн 2009, 21:03
Naeel Maqsudov
&quot писал(а):мой Сase и так типа анаписано в книжке, но почему delphi множество не нравится
Потому, что "множеству" тут не место. Тут может быть только диапазон или значение или список из значений и диапазонов.
Так что возьмите белую канцелярскую краску типа "Штрих" и книгу Вашу аккуратненько пофиксите :)