Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

операция "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"


Наверх

Титульная страница Поиск, карта сайта Написать письмо