![]() |
Поиск по каждому слову
Добрый день.
Подскажите, не могу сообразить, в RicheDit набран какой то текст, нужно перебирая все слова сверить их с базой, по первому я сделал так, а как сделать чтобы он перебирал по каждому слову. procedure TForm1.Button1Click(Sender: TObject); var StartPos, Position, Endpos, i: Integer; SearchText, f1: string; begin //------------------------------------------ f1:=leftStr(RichEdit1.Text,Pos(' ',RichEdit1.Text)-1); SearchText:=f1; StartPos := 0; with RichEdit1 do begin Query1.First; Endpos := Length(RichEdit1.Text); Lines.BeginUpdate; while FindText(SearchText, StartPos, Endpos, [stMatchCase])<>-1 do begin Endpos := Length(RichEdit1.Text) - startpos; Position := FindText(SearchText, StartPos, Endpos, [stMatchCase]); begin for i:=1 to Query1.RecordCount do begin if Query1['TXT1']=SearchText then Memo1.Text:=Query1['P_K']; Query1.Next; end; end; Inc(StartPos, Length(SearchText)); SetFocus; SelStart := Position; SelLength := Length(SearchText); end; Lines.EndUpdate; end; //------------------------------------------- end; |
Ответ: Поиск по каждому слову
Может, скопировать весть текст в новый массив строк, а потом в цикле находить первое слово (текст до первого пробела), обработать это слово, удалить из текста и т.д.
Или найти сторонний компонент, который делит строку на массив подстрок по указанному разделителю. В perl и php эта функция называется split, по-моему. И когдато встречал ее реализацию для Дельфи. |
Ответ: Поиск по каждому слову
Цитата:
|
| Текущее время: 13:09. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc