Консультация № 46587
18.06.2006, 17:24
0.00 руб.
0 2 2
Здравствуйте

у меня такая вот проблема....

procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
begin
for i:=0 to RichEdit1.Lines.Count-1 do
begin
if StrPos(PChar(UpperCase(Edit1.Text)),PChar(UpperCase(RichEdit1.Lines[i])))<>nil then
begin
ShowMessage(‘УРЯЯ !!! Нашло !!!‘);
end;
end;
end;

проверяю - содержит ли строка RichEdit какуой-то текст Edit,
но если в RichEdit это написать большими буквами то не находит
вроде UpperCase поставил не помогает

Прикол в том, что если Например если в Edit вписать www а в RichEdit WwW то находит,
а если слово кирилицей написать, то не находит ццц - ЦцЦ

Обсуждение

Неизвестный
18.06.2006, 17:35
общий
это ответ
Здравствуйте, source!
1) Зачем вы используете StrPos()? Можно ведь простой Pos() использовать. В принципе, разницы-то и нет, но вот результат... Зачем вы туда <b>nil</b>-то прикрутили? Это значение вообще не подходит к результату такой функции. Да и знак меньше "<" неуместен - номер позиции не может быть отрицательным. Перепишите условие так: "If (...) > 0 Then ...". Это будет действительно правильно.
2) Эти стандартные функции не работают с русским алфавитом, поэтому нужно написать свои. <a href=http://rusfaq.ru/?Step=info&Action=Question&ID=46316>Подробнее >></a>
Неизвестный
18.06.2006, 17:35
общий
это ответ
Здравствуйте, source!
Так ведь для русских букв нужно использовать AnsiUpperCase, а UpperCase русских букв не понимает
Форма ответа