![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Синтаксис языка Object Pascal [D5, Win2k]
jin © (2002-04-12 11:30:00)Граждане вот какой код есть
CodTxt=1;
CodPic=2;
CodWav=3;
........
MySet=[CodTxt,CodPic];
.............
Case i of
1..3: WriteLn("?") или CodTxt,CodPic,CodWav: WriteLn("?")
Вопрос такой в рамках синтаксиса языка возможна ли конструкция
аналогичная по смыслу (именно такая невозможна)
Case i of
MySet: WriteLn("?")
скажем за счет иного механизма констант, или синтаксического элемента в районе MySet позволяющее втолковать компилятору?
Digitman (2002-04-12 11:40:00) [1]Механизм генерации и управления множества в ОП для данной задачи никак не подходит. Здесь желательно использовать перечислимый тип :
type
TMySet = (CodTxt, CodPic, CodWav, ...);
var
MySet: TMySet;
..
case MySet of
CodTxt : ...;
CodPic : ...;
CodWav : ...;
else
...
end;
Компилятор автоматически пронумерует слева направо идент-ры, перечисленные в типе TMySet, начиная с 0. Если такой вариант не устраивает, то, наверно, придется отказаться от case..of и использовать не столь удобный if..then..else
drpass (2002-04-12 11:36:00) [2]Можно так:
Case i of
CodTxt,CodPic: WriteLn("?")
Можно так: if i in MySet then...
Но операции со множествами в операторе case недопустимы