|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
посчитать количество слов в тексте
Как посчитать количество Слов в текскте в мемо?
|
#2
|
||||
|
||||
Можно как количество пробелов +1. Так проще всего. Или предлоги с союзами не нужно?
Ну есть ещё ньюансы если есть перенос строки, но думаю мысль ясна. Нет повести печальнее на свете, чем повесть о заклиневшем Resete. |
#3
|
|||
|
|||
нужно все считать и предлоги, и союзы.
|
#4
|
|||
|
|||
функция но она не работает может кто подскажет почему
Код:
function KolSlov(var AMemo : Tmemo) : integer; Var n : integer; i : byte; Begin n := 0; for i := 1 to AMemo.Lines.Count-1 do begin if (AMemo.Lines[i]<>' ') and (AMemo.Lines[i+1]=' ') then n:=n + 1; end; end; Код:
ValueListEditor2.Values['Слов'] := IntToStr(KolSlov(memo1)); Последний раз редактировалось WeG, 06.03.2010 в 13:33. |
#5
|
||||
|
||||
Цитата:
Функция: Код:
function WordCount(Text : String) : LongWord; var i : LongWord; begin Result:=0; for i:=0 to Length(Text) do if (Text[i]=' ') or ((Text[i]=#13) and (Text[i+1]=#10)) then inc(Result); if Result<>0 then inc(Result); end; Вызов: Код:
ShowMessage('Words count: '+IntToStr(WordCount(Memo1.Text))); Работает если между словами есть пробел, либо если есть переводы строк. Дерзай PS> Кстати 2 пробела между двумя словвами ставить нельзя)) Нет повести печальнее на свете, чем повесть о заклиневшем Resete. Последний раз редактировалось Ferra, 06.03.2010 в 13:41. |
#6
|
||||
|
||||
Цитата:
Потому как Lines - это строки. а тебе нужно их содержимое. Нет повести печальнее на свете, чем повесть о заклиневшем Resete. |
#7
|
|||
|
|||
Спасибо огромное! Все, дошло до меня
|
#8
|
|||
|
|||
Подсчет кол-ва слов, подсчетом кол-ва пробелов.
На самом деле не самый удачный способ считать пробелы, так как, если пробелы будут вподряд стоять, то кол-во слов подсчитает неправильно. Код:
function GetWordsCount(const aMemo:TMemo):Integer; var i:integer; begin Result:=0; with aMemo do if Length(Text)>0 then begin for i:=1 to Length(Text) do if (Text[i] in [' ', #13]) then Inc(Result); if not (Text[i] in [' ', #13]) then inc(Result); end; end; |