Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 31.10.2016
Сообщений: 22
1

В каждой строке Memo посчитать количество слов

02.01.2017, 19:02. Показов 4439. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Подскажите, пожалуйста,в мемо выводится содержимое текстового файла,как в каждой строке посчитать количество слов? Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.01.2017, 19:02
Ответы с готовыми решениями:

Как посчитать количество слов в Delphi из Memo?
Как посчитать количество слов в Delphi из Memo? Если использовать не только знаки точка, мягкий...

Посчитать количество слов в каждой строке текстового файла
пусть дан текстовый файл. создайте файл целых чисел, в котором каждой строке исходного файла...

Определить количество слов в каждой строке, сжать каждую строку, удалив END в каждой строке
Выполнить обработку текста из внешнего текстового файла, созданного в редакторе ....

Посчитать количество слов в строке. Определить, что является разделителем слов
2) Ввести с клавиатуры строку. Посчитать количество слов в строке. Определить, что является...

9
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
02.01.2017, 19:21 2
Заменить в строке все разделители слов на пробелы.
Далее можно по разному.
1) по паскалевски. Удалить лишние пробелы(начальные, конечные, в середине), посчитать сколько осталось, кол. слов=кол. пробелов+1.
2)по делфийски. Для каждой строки создавать экземпляр класса TStringList. Переносить в него строку, определять Count, уничтожать объект.
1
0 / 0 / 0
Регистрация: 31.10.2016
Сообщений: 22
03.01.2017, 08:46  [ТС] 3
Цикл for i:=0 to memo1.lines.count-1 do подсчет слов?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
03.01.2017, 08:48 4
Это просмотр всех строк в Мемо, а уже в каждой строке нужно считать слова.
1
0 / 0 / 0
Регистрация: 31.10.2016
Сообщений: 22
03.01.2017, 09:06  [ТС] 5
У меня только по 1 строке обход получается
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
03.01.2017, 09:09 6
nikita094, Код покажи, поправлю.
0
0 / 0 / 0
Регистрация: 31.10.2016
Сообщений: 22
03.01.2017, 09:41  [ТС] 7
Пока с одним пробелом и точкой.

Delphi
1
2
3
4
5
6
7
8
9
10
11
while not (eof(f)) do
begin
readln(f,s);
memo1.Lines.Add(s);
memo2.Show;
button2.Enabled:=true;
button1.Enabled:=false;
stringgrid1.Show;
stringgrid2.Show;
end;
end;

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  var
  k,str,g,i,m,j,h: integer;
procedure TForm1.Button2Click(Sender: TObject);
begin
g:=memo1.lines.count;
h:=length(memo1.Lines[i]);
m:=stringgrid1.RowCount;
str:=0;
begin
S:=s+' ';
str:=str+1;
for i:=0 to g-1 do
for j:=1 to h do
begin
if s[i] in [' ','.'] then k:=k+1;
memo2.Lines.Add(s);
end;
StringGrid1.Cells[m+1,0]:=inttostr(str);
stringgrid1.cells[m+1,1]:=inttostr(k);
m:=m+1;
g:=g+1;
end;
end;
end.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
03.01.2017, 10:22 8
Лучший ответ Сообщение было отмечено nikita094 как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure TForm1.Button1Click(Sender: TObject);
const rz=[',','.','?','!'];//разделители слов, добавить исходя из текста
var i,j,k:Integer;
    s:string;
begin
Memo1.Lines.LoadFromFile('text.txt');//файл в папке с программой
for i:=0 to Memo1.Lines.Count-1 do
 begin
   s:=Memo1.Lines[i];
   for j:=1 to Length(s) do //заменим все разделители на пробелы
   if s[j] in rz then s[j]:=' ';
   while Pos('  ',s)>0 do //удалим лишние пробелы
   Delete(s,Pos('  ',s),1);//в апострофах по 2 пробела
   s:=Trim(s); //обрежем пробелы в начале и в конце
   if s=''then k:=0
   else
    begin
     k:=1;//1 слово точно есть
     for j:=1 to Length(s) do
     if s[j]=' ' then k:=k+1;//прибавим количество пробелов
    end;
   //выведем результат по каждой строке файла в Мемо2  
   Memo2.Lines.Add('Количество слов в строке '+inttostr(i+1)+'='+inttostr(k));
 end;
end;
1
0 / 0 / 0
Регистрация: 31.10.2016
Сообщений: 22
03.01.2017, 10:25  [ТС] 9
Спасибо Вам большое! Очень помогли
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
03.01.2017, 11:12 10
Лучший ответ Сообщение было отмечено nikita094 как решение

Решение

nikita094, вот, что получилось у меня

Код
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
List, ResultList:TStringList;
i:Integer;
s, WordsCount:string;
begin
List :=TStringList.Create; //создаем экземпляр для начального списка
List.LoadFromFile('test.txt'); //подгружаем строки из файла
WordsCount :=''; //обнуляем результирующую строку
for i :=0 to List.Count-1 do begin  //перебираем в цикле все строки
s :=List[i];  //берем текущую строку
ResultList :=TStringList.Create; //создаем экземпляр для конечного списка разделенных слов
//с учетом возможных разделителей
ExtractStrings([';', ',','.','?','!',':',' '], [' '], PChar(s), ResultList); //разбиваем ее на слова
WordsCount :=WordsCount+'в '+IntToStr(i+1)+'-й строке - ' +IntToStr(ResultList.Count)+#10#13;
ResultList.Free;
end;
Memo1.Lines.Assign(List);//выводим строки из начального списка
List.Free;
lbl1.Caption :='Количество слов:'+#10#13+WordsCount; //выводим результат в TLabel
end;
Миниатюры
В каждой строке Memo посчитать количество слов  
1
03.01.2017, 11:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.01.2017, 11:12
Помогаю со студенческими работами здесь

В заданной строке посчитать количество слов. Разделителем слов считается один или несколько ответов
В заданной строке посчитать количество слов. Разделителем слов считается один или несколько...

Посчитать количество строк файла, для каждой отдельной строки определить количество символов и слов
В текстовом файле посчитать количество строк, а также для каждой отдельной строки определить...

Вывести все слова из каждой строки, начинающиеся и заканчивающиеся на заданную букву и количество таких слов в каждой строке.
Ребят, всем привет!; Помогите, пожалуйста, решить задачу со строками на С++; Даны две строки,...

Посчитать количество звездочек в каждой строке
4. Пусть даны натуральное число n и символьная квадратная матрица порядка n. Получите...

Посчитать количество слов для каждой введенной строки
Вывести в браузер простую форму, которая отправляет на сервер 3 строки, вводимых пользователем. В...

Посчитать в строке количество слов
Посчитать в строке количество слов.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru