Można użyć AnsiIndexText (const AnsiString AText, const array of AValues String): Integer lub MatchStr (const AText: string; const AValues: array of string): Boolean;
Coś
Result := (AnsiIndexText('Hi',['Hello','Hi','Foo','Bar']) > -1);
lub
Result := MatchStr('Hi', ['foo', 'Bar']);
AnsiIndexText zwraca 0 offset indeks pierwszego ciąg stwierdzi w AValues który pasuje AText rozróżniana wielkość liter. Jeśli ciąg określony przez AText nie ma dopasowania (w dużym stopniu bez rozróżniania wielkości liter) w AValues, AnsiIndexText zwraca -1. Porównania są oparte na bieżącym locale systemu .
MatchStr określa, czy którykolwiek z strun w AValues tablicy dopasować ciąg określony przez AText używając case wrażliwą porównania. Zwraca true , jeśli co najmniej jeden z ciągów w macierzy jest zgodny lub fałsz, jeśli żaden z ciągów nie pasuje.
Uwaga AnsiIndexText ma rozróżniana wielkość liter i MatchStr jest wielkość liter, więc myślę, że to zależy od zastosowania
EDIT: 03/09/2011: Wystarczy znaleźć tę odpowiedź i że chciałbym dodać notatkę że w Delphi 2010 istnieje również funkcja MatchText
, która jest taka sama jak MatchStr
, ale przypadek nie jest ważny.- Larry
W rzeczywistości jest lepszy, po prostu trochę przeszukano w StrUtils.pas i znalazłem MatchStr, który zwraca wartość logiczną: Wynik: = MatchStr ("Hi" , ['foo', 'Bar']); Dodaj go do swojej odpowiedzi –
MatchStr i MatchText są również dostępne w Delphi 2007. –
jakikolwiek odpowiednik delphi 7? – CyprUS