![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сравнение строк
Handler © (2012-06-11 11:15:00)S1 := 'Led/ Жк телевизор BBK LED1955DT';
S2 := 'Led/ ЖК телевизор BBK LED1955DT';
ShowMessage(BoolToStr(SameText(S1, S2)));
Результат сравнения - False. Почему? Сравнение ведь происходит без учета регистра.
Sha (2012-06-11 11:32:00) [1]Попробуй в среде Delphi навести курсор на имена этих функций
(SameText, CompareText, ANSICompareText) и нажать кнопку F1.
Ответ получишь раньше, чем за 11 минут.
sniknik (2012-06-11 11:31:00) [2]различие в русских буквах а функция используется без учета локали, т.е. либо английской части буквы увеличивай, а русские не трожь, либо функцию меняй на AnsiSameText.
Handler (2012-06-11 11:26:00) [3]Почему-то при сравнении SameText, CompareText получается, что строки не равны, а если использовать ANSICompareText - равны
procedure TForm1.FormCreate(Sender: TObject);
var
S1, S2: string;
SL: TStrings;
begin
S1 := 'Led/ Жк телевизор BBK LED1955DT';
S2 := 'Led/ ЖК телевизор BBK LED1955DT';
ShowMessage(BoolToStr(S1 <> S2, True)); // S1 <> S2
SL := TStringList.Create;
try
SL.Add(S1);
ShowMessage(IntToStr(SL.IndexOf(S2))); // S1 = S2
finally
SL.Free;
end;
end;
Anatoly Podgoretsky (2012-06-11 11:23:00) [4]> Handler (11.06.2012 11:15:00) [0]
Кроме того как ты различаешь - где пробел, а где скажем табуляция или другой
непечатный символ, например на разрывный пробел.
Ты что расчитываешь, что мы за тебя сделаем отладку?
Anatoly Podgoretsky (2012-06-11 11:22:00) [5]> Handler (11.06.2012 11:15:00) [0]
А может с учетом, проверь измени букву <К>