![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
операция "in" [D7]
Alex7 © (2005-12-06 11:15:00)Уважаемые мастера!
Вместо
Var r1:string; Begin r1:= 'ab';
If (r1='cm') or (r1='ed') or (r1='pn') or (r1='sp') Then.....
Хочу использовать более короткое:
Var r1:string; Begin r1:= 'ab';
If r1 in ['cm', 'ed', 'pn', 'sp'] Then.....
Компилятор выдает:
"Ordinal type required" и
"Incompatible types 'integer' and 'string' ",
хотя. как я понимаю в [] должно быть любое
множество строк.
Подскажите, пожалуйста, в чем моя ошибка ?
Спасибо.
Alex7 (2005-12-06 12:33:00) [1]Понятно! Спасибо.
begin...end (2005-12-06 12:26:00) [2]uses StrUtils;
if AnsiIndexStr(r1, ['cm', 'ed', 'pn', 'sp']) >= 0 then
...
Alex7 (2005-12-06 12:20:00) [3]Если я правильно понял, использование
операции "in" очень ограничено и в моем
случае невозможно ?
Хинт (2005-12-06 11:46:00) [4]Короче говоря нельзя использовать строки, в качестве элементов множества (char, byte, integer, но не string)
Digitman (2005-12-06 11:18:00) [5]r1 не может иметь строковый тип, только - ordinal-тип ... о чем собственно компилятор тебе и сказал
Плохиш (2005-12-06 11:17:00) [6]Тип 'string' не относится к "Ordinal type"