The Unofficial Newsletter of Delphi Users - by Robert Vivrette

Быстрый тип - сравнение строк

By Jens Fudge - Jens.Fudge@lpt.dk

Перевод Руденко Е.В.   janer@newmail.ru    июнь 2001 года

 

Сравнение строк обычно используется в большинстве программ. Часто для сравнения применяется цикл for или while ....

for i := 0 to ListOfStrings.count -1 do
 if inputString = ListOfStrings[i] then
  blablabla
Такая процедура фактически сравнивает строки i раз... Сравнение строк занимает определенное время , особенно при использовании функции UpperCase ...
for i := 0 to ListOfStrings.count -1 do
 if UpperCase(inputString) = UpperCase(ListOfStrings[i]) then
  blablabla
А что вы скажете по поводу данной функции, которая ускоряет процесс сравнения :
function CompareStrings(str1, str2 : string): Boolean;
begin
  result := false;
  if length(str1) = length(str2) then   {если длина разная, то строки разные}
    if str1 = str2 then
        result := true;
  end;
end;
А вот другая версия этой функции :
function CompareStrings(str1, str2 : string; ignoreCase : Boolean): Boolean;
begin
  result := false;
  if length(str1) = length(str2) then
  begin
    if ignoreCase then
      begin
       if UpperCase(str1) = UpperCase(str2) then
        result := true;
      end
    else
      if str1 = str2 then
        result := true;
  end;
end;

Надеюсь, что кому-то пригодится данный тип.

Jens Fudge

Возврат в Tips&Tricks