![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
поиск в строке
nonamez11 © (2008-12-16 16:52:00)всем драсти..может кто нибудь поможет с простым вопросом по Delphi???
задание такое,типа дана строка,например вводим в Edit,слова в строке разделены пробелами.И надо посчитать количество слов,содержащих букву м.я начал чо то писать,но он тока первое слово проверяет,дальше не знаю как цикл организовать,не получается..вот что есть
function TForm1.find(S:String):integer;
var
q,slovo:string;
i,j,k:integer;
a:integer;
kolvo:integer;
begin
kolvo:=0;
i:=Pos(' ',S);
a:=Length(S);
if i0 then
begin
q:=Copy(S,i+1,Length(S));
j:=Pos(' ',q);
slovo:=Copy(q,0,j-1);
k:=Pos('ì',slovo);
if k0 then kolvo:=kolvo+1;
s:=Copy(q,j,a);
Result:=kolvo;
endж
end;
nonamez11 (2008-12-16 17:42:00) [1]спасибо за помощь)с меня пиво
Правильный$Вася (2008-12-16 17:40:00) [2]
> в цикле проверять каждый символ?эт не слишком накладно
> в плане производительности?
Pos делает то же самое
а копирование участков строки гораздо накладнее проверки символов
Сергей М. (2008-12-16 17:38:00) [3]вот это "чо" - http://regexpstudio.com/RU/TRegExpr/TRegExpr.html
nonamez11 (2008-12-16 17:35:00) [4]СтрингЛист то я знаю.а вот TRegExpr чо хз)
Сергей М. (2008-12-16 17:28:00) [5]
> не знаю чо эта
Можно подумать? что ты знаешь "чо эта - TStringList")
nonamez11 (2008-12-16 17:24:00) [6]я не знаю чо эта)
Сергей М. (2008-12-16 17:14:00) [7]
> скорее препод
ну предложи преподу TRegExpr)
Решение в 3 строки текста, никаких TStringList и циклы присутствуют)
nonamez11 (2008-12-16 17:12:00) [8]то есть просто в цикле проверять каждый символ?эт не слишком накладно в плане производительности?
Правильный$Вася (2008-12-16 17:11:00) [9]никаких Pos, Copy и т.п. нафиг не надо
Правильный$Вася (2008-12-16 17:10:00) [10]организуешь перебор символов строки
каждый проверяешь на нужную букву или разделитель
если буква нужная попалась и флаг наличия буквы еще пустой, инкрементируешь счетчик слов с буквой и выставляешь флаг
если попался разделитель слов, сбрасываешь флаг наличия буквы
nonamez11 (2008-12-16 17:08:00) [11]скорее препод
Сергей М. (2008-12-16 17:05:00) [12]
> мне без этого надо обойтись
Коран не велит ?)
nonamez11 (2008-12-16 17:03:00) [13]нет мне без этого надо обойтись,т.е искать в одной строке...надо прост как то зациклить..
пробовал repeat until,не пашет..не знаю блин как зациклить
Правильный$Вася (2008-12-16 16:55:00) [14]TStringList