четверг, 28 апреля 2011 г.

Программа подсчета символов в тексте

Программа подсчета символов в тексте

  Решил написать программку для подсчитывания количества знаков в тексте, она будет работать следующим образом: загружаем текст в программу вводим символ, колличесво которого в тексте нам необходимо узнать.
Для этого на форме размещаем компоненты Memo, OpenDialog, Edit, два компонента Button, Label, далее зададим название двум кнопкам, первая - «Загрузить», вторая – «Подсчитать» , у компонентов Memo и Edit убираем стандартный текст, а у компонента Label стираем текст в поле Caption.
Получаем примерно такой вид формы:


  Далее пишем код  программы , сначала событие клика по кнопке «Загрузить»
Здесь мы будем загружать текст в компонент Memo с помощью компонента OpenDialog.

Код загрузки текста в Memo:

procedure TForm1.Button1Click(Sender: TObject);
begin
with opendialog1 do
begin
if opendialog1.Execute then
begin
memo1.Lines.LoadFromFile(filename);
end;
end;
end;

Код обработки нажатия на кнопку подсчитать состоит из следующих этапов:
  1. узнаем длину текста
  2. перебираем текст по букве и подсчитываем количество введенной нами буквы
  3. выводим сообщение о количестве содержания введенной нами буквы в тексте
Перебор будем  осуществлять с помощью цикла fortodo и цикла ifthen
И функции Copy:

Функция Copy(s,n,i) возвращает подстроку длинной  « i » ( тип integer ) начиная с позиции « n » ( ип integer ) строки « s » ( тип string )

Код клика по кнопке «Подсчитать»:

procedure TForm1.Button2Click(Sender: TObject);
var
len,i,s:integer;
begin
len:=length(memo1.Text);
s:=0;
for i:=1 to len do
begin
if copy(memo1.Text,i,1)=edit1.Text then
begin
s:=s+1;
end;
end;
 label1.Caption:= 'текст содержит '+inttostr(s)+' символов '+edit1.Text;
end;

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