![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Есть текст в RichEdit, есть слово в Edit. Нужно посчитать, сколько раз это слово встречается в тексте.
я в программировании не бум-бум, в инете искал, сделал так: Код:
while RichEdit1.FindText(word, startpos, Endpos, [stMatchCase,stWholeWord])<>-1 do begin Inc(ii); // + к числу слов startpos:=startpos+pos(word,RichEdit1.Text); end; Последний раз редактировалось lmikle, 14.01.2012 в 21:12. |
#2
|
||||
|
||||
![]() Самое простое, при помощи функции PosEx, примерный набросок:
Код:
var Count: Integer; Curr: Integer; begin Count := 0; Curr := Pos(Edit1.Text, RichEdit1.Text); while(Curr <> 0) do begin inc(Count); Curr := PosEx(Edit1.Text, RichEdit1.Text, Curr+1); end; ShowMessage('Кол-во слов в тексте: ' + IntToStr(Count)); Помогаю за Спасибо ![]() |
Этот пользователь сказал Спасибо v1s2222 за это полезное сообщение: | ||
ShutTap (14.01.2012)
|
#3
|
|||
|
|||
![]() Спасибище огромное!!)
|
#4
|
|||
|
|||
![]() надо чтобы слово искалось целиком, а не его вхождение в часто другого слова.
типа ищу "лес", должен найти "лес", но не "леса", например. |
#5
|
||||
|
||||
![]() Проверяй следующий символ после найденного слова, если символ в пределах 'a..z, A..Z, а..я, А..Я', то пропускай его.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#6
|
|||
|
|||
![]() можно как то через
FindText(word, startpos, Endpos, [stMatchCase,stWholeWord]) у ричедита? в начале вариант написан. там, как я понял, stWholeWord отвечает как раз за слово целиком, а не вхождение в другое слово. |
#7
|
||||
|
||||
![]() В "сети" и такое имеется:
Код:
function SearchForText_AndSelect(RichEdit: TRichEdit; SearchText: string): Boolean; var StartPos, Position, Endpos: Integer; begin StartPos := 0; with RichEdit do begin Endpos := Length(RichEdit.Text); Lines.BeginUpdate; while FindText(SearchText, StartPos, Endpos, [stMatchCase])<>-1 do begin Endpos := Length(RichEdit.Text) - startpos; Position := FindText(SearchText, StartPos, Endpos, [stMatchCase]); Inc(StartPos, Length(SearchText)); SetFocus; SelStart := Position; SelLength := Length(SearchText); end; Lines.EndUpdate; end; end; procedure TForm1.Button1Click(Sender: TObject); begin SearchForText_AndSelect(RichEdit1, 'Some Text'); end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#8
|
|||
|
|||
![]() вроде сделал, спасибо всем)
Последний раз редактировалось ShutTap, 18.01.2012 в 02:26. |