Форум: "Основная";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];
ВнизСинтаксис языка Object Pascal Найти похожие ветки
← →
jin (2002-04-12 11:30) [0]Граждане вот какой код есть
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 позволяющее втолковать компилятору?
← →
drpass (2002-04-12 11:36) [1]Можно так:
Case i of
CodTxt,CodPic: WriteLn("?")
Можно так: if i in MySet then...
Но операции со множествами в операторе case недопустимы
← →
Digitman (2002-04-12 11:40) [2]Механизм генерации и управления множества в ОП для данной задачи никак не подходит. Здесь желательно использовать перечислимый тип :
type
TMySet = (CodTxt, CodPic, CodWav, ...);
var
MySet: TMySet;
..
case MySet of
CodTxt : ...;
CodPic : ...;
CodWav : ...;
else
...
end;
Компилятор автоматически пронумерует слева направо идент-ры, перечисленные в типе TMySet, начиная с 0. Если такой вариант не устраивает, то, наверно, придется отказаться от case..of и использовать не столь удобный if..then..else
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c