bez rozróżniania wielkości liter Poz

Czy w D2010 (Unicode) istnieje porównywalna funkcja, taka jak Pos, która nie rozróżnia wielkości liter?

Wiem, że mogę użyć Pos (AnsiUpperCase (FindString), AnsiUpperCase (SourceString)), ale dodaje to dużo czasu przetwarzania, konwertując łańcuchy na wielkie litery za każdym razem, gdy wywoływana jest funkcja.

Na przykład w pętli 1000000 Pos zajmuje 78 ms, a konwersja na duże zajmuje 764 ms.

str1 := 'dfkfkL%&/s"#<.676505';
  for i := 0 to 1000000 do
    PosEx('#<.', str1, 1); // Takes 78ms

  for i := 0 to 1000000 do
    PosEx(AnsiUpperCase('#<.'), AnsiUpperCase(str1), 1); // Takes 764ms

Wiem, że aby poprawić wydajność tego konkretnego przykładu, mogę przekonwertować ciągi znaków na wielkie litery najpierw przed pętlą, ale powód, dla którego szukam funkcji podobnej do litery, która nie rozróżnia wielkości liter, polega na zastąpieniu jednej z funkcji FastStrings . Wszystkie ciągi, na których będę używał Pos, będą różne, więc będę musiał przekonwertować każdą z nich na wielką.

Czy jest jakaś inna funkcja, która mogłaby być szybsza niż Pos + konwertować ciągi na wielkie litery?

questionAnswers(9)

yourAnswerToTheQuestion