Ответ 1
Вы можете использовать AnsiIndexText (const AnsiString AText, const array строки AValues): integer или MatchStr (const AText: string; const AValues: массив строки): Boolean;
Что-то вроде
Result := (AnsiIndexText('Hi',['Hello','Hi','Foo','Bar']) > -1);
или
Result := MatchStr('Hi', ['foo', 'Bar']);
AnsiIndexText возвращает 0-смещение индекс первой строки, которую он находит в AValues, который соответствует AText регистронезависимо. Если строка указанный AText, не имеет (возможно, без учета регистра) совпадают в AValues, AnsiIndexText возвращает -1. Сравнение основано на текущих system locale.
MatchStr определяет, будет ли какой-либо из строки в массиве AValues соответствуют строка, указанная AText с использованием аргумента чувствительное сравнение. Он возвращает true если хотя бы одна из строк в массив, или false, если ни одна из соответствие строк.
Примечание. AnsiIndexText имеет регистр без учета регистра, а MatchStr чувствителен к регистру, поэтому я предполагаю, что это зависит от вашего использования.
EDIT: 2011-09-3. Просто нашел этот ответ и подумал, что добавлю примечание, что в Delphi 2010 есть также функция MatchText
, которая совпадает с MatchStr
но случай insenstive. - Ларри