![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск по Memo [D6, Win95/98]
Sound © (2002-03-25 22:29:00)Как (поподробней) произвести поиск слово по Memo? С проверкой того нашли его или нет, а если да то в какой позиции.
MBo (2002-03-26 22:04:00) [1]i:=pos(AnsiUpperCase("123"),AnsiUpperCase(Memo1.Text));
if i>0 then
i:=memo1.perform(EM_LINEFROMCHAR,i-1,0);
Anatoly Podgoretsky (2002-03-26 21:44:00) [2]Andrey007 (26.03.02 11:55)
Нет, он поддерживает Ansi
Andrey007 (2002-03-26 11:55:00) [3]pos(AnsiUpperCase("Word"),AnsiUpperCase(Memo1.Lines[i])).
Но я не уверен относительно того, преобразовывает ли AnsiUpperCase русские буквы - Вам надо будет проверить.
Sound (2002-03-26 11:44:00) [4]А если ищется слова без знания регистра его букв? к примеру Word, word, WORD, woRD.. и т.д.?
KaPaT (2002-03-26 01:18:00) [5]Забыл! Код выше будет искать по всем строкам на первое совпадение в строке!
KaPaT (2002-03-26 01:16:00) [6]Вот полный код как бы я делал:
var
i,n : Integer;
begin
For i:=0 to Memo1.Lines.Count-1 do
begin
n:=Pos("Word",Memo1.Lines[i]);
If n<>0 then ShowMessage("Строка:"+IntTosTr(i+1)+"Позиция"+IntToStr(n))
end;
end;
Atrem (2002-03-25 23:39:00) [7]var i:integer;
i:=pos("SearchWord",Memo1.text);
if i>0 then showmessage("Найдено на позиции №"+inttostr(i))
else showmessage("Не найдено)"
Sound (2002-03-25 22:47:00) [8]Первое и надо, а как это будет выглядеть?
KaPaT (2002-03-25 22:34:00) [9]Я думаю что надо использовать ф-цию POS.
У нее два параметра - строка и подстрока. Так вот она ищет подстроку в строке и возвращает номер символа с какого начинается совпадение. Но она ищет только первое совпадение.