@ ответ Дэниела указал мне в правильном направлении, но мне потребовалось некоторое время, чтобы заметить «JCL Library» часть и комментарии о стандартных версиях.
В [по крайней мере] XE2 и позже, вы можете использовать:
Case IndexStr('somename', ['bobby', 'tommy', 'somename', 'george']) of
0: ..code..; // bobby
1: ..code..; // tommy
2: ..code..; // somename
-1: ShowMessage('Not Present'); // not present in array
else
ShowMessage('Default Option'); // present, but not handled above
end;
Эта версия является чувствительным к регистру, поэтому, если первый аргумент был «SomeName» было бы взять not present in array
путь. Используйте IndexText
для сравнения без учета регистра.
Для старых версий Delphi используйте AnsiIndexStr
или AnsiIndexText
, соответственно.
Претензии к @Daniel, @The_Fox и @afrazier для большинства компонентов этого ответа.
кажется, что FreePascal (FPC) уже реализовали эту функцию языка, я хочу Delphi будет следить! [http://forum.lazarus.freepascal.org/index.php?topic=17983.0] –