Delphi. Учимся на примерах - [4]

Шрифт
Интервал

> end;

>end;


>procedure TForm1.ButtonlClick(Sender: TObject);

>begin

> doit;

>end;


>procedure TForm1.Button2Click(Sender: TObject);

>begin

> if Open1.Execute then from.Text := Open1.FileName

> else ShowMessage('Файл не был открыт');

>end;


>procedure TForm1.Button3Click(Sender: TObject);

>begin

> if Save1.Execute then where.Text:= Save1.FileName

> else ShowMessage(''Вы не выбрали место для сохранения файла!');

>end;


>procedure TForm1.Button5Click(Sender: TObject);

>begin

> doit;

> DeleteFile(from.Text); //удаляем исходный файл

>end;


>procedure TForm1.Button4Click(Sender: TObject);

> begin

> if Open1.Execute then del.Text:= Open1.FileName

> else ShowMessage('Файл не был выбран');

>end;


>procedure TForm1.Button6Click(Sender: TObject);

>begin

> DeleteFile(del.Text); //удаляем файл

> if not FileExists(del.Text)

> then //проверяем существование файла

>  //выводим сообщение об успешном удалении

>  ShowMessage('Файл удален!');

>end;


>end.

⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter_02.

Глава 3

Работа с текстом. Статистика документа

Постановка задачи

Разработать программу, которая выводит статистику выбранного пользователем документа. Статистические данные включают в себя количество слов, символов, пробелов и строк.

Разработка формы

Создадим новый проект Delphi и разработаем интерфейс программы. Измените значение свойства Caption главной формы на Статистика. Разместите на форме компонент Label категории Standard, и присвойте его свойствам значения согласно табл. 3.1.

Таблица 3.1. Свойства компонентаLabel, размещенного на форме Статистика

Свойство Значение Пояснение
Caption Статистика Надпись метки
Font.Color clRed Цвет надписи — красный
Font.Name Courier New Шрифт надписи
Font.Size 16 Размер шрифта надписи
Font.Style [fsBold] Стиль шрифта — полужирный
Left 128 Отступ слева
Top3Отступ сверху

Ниже разместите компонент Edit категории Standard (поле ввода), в котором будет храниться путь к обрабатываемому файлу. Справа от него разместим кнопку (компонент Button категории Standard), которая будет открывать окно обзора для выбора файла. Присвойте свойству Button1.Caption значение Обзор.

Для реализации выбора файла разместите на форме компонент OpenDialog категории Dialogs. Измените значение свойства Name этого компонента наOpen1.

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

Таблица 3.2. Свойства шрифта компонентов Label

Свойство ЗначениеПояснение
Font.NameCourier NewШрифт надписи
Font.Size12Размер шрифта надписи
Font.Style[fsBold]Стиль шрифта — полужирный

Разместите на форме справа от каждого предыдущих четырех меток еще четыре компонента Label и присвойте им имена (свойство Name) words, symbols, spaces и lines. Присвойте значения свойствам этих меток согласно табл. 3.3.

Таблица 3.3. Свойства компонентов words, symbols, spaces и lines

Свойство Значение Пояснение
Caption 0 Надпись метки
Font.Color clRed Цвет надписи — красный
Font.Name Courier New Шрифт надписи
Font.Size 12 Размер шрифта надписи
Font.Style [fsBold] Стиль шрифта — полужирный
Left 112 Отступ слева

В правом нижнем углу формы разметим кнопку (компонент Button), по нажатию которой будут выполняться расчёты и выводиться все данные. Свойству Caption этой кнопки присвоим значение Статистика. На этом разработка формы завершена. Полученный результат должен примерно соответствовать рис. 3.1

Рис. 3.1. Форма Статистика

Разработка программного кода

В этой программе следует обработать только два события: нажатие кнопки Обзор и нажатие кнопки Статистика. Сначала — о кнопке Обзор:

>procedure TForm1.Button1Click(Sender: TObject);

>begin

> //начинаем обзор с текущей папки

> Open1.InitialDir:= GetCurrentDir;

> if Open1.Execute then Edit1.Text:= Open1.FileName //открываем диалоговое окно выбора файла

> else ShowMessage('Файл не выбран!');

>end;

Начинаем обзор с каталога, в котором в данный момент находится программа. Затем следует стандартная проверка: если файл не был выбран, то сообщаем об этом пользователю, иначе отображаем путь к файлу в поле Edit1.

При нажатии кнопки Статистика выполняется подсчет и отображение данных о выбранном файле:

procedure TForm1.Button2Click(Sender: TObject);

>var

> f: file of byte; //Переменная для работы с файлом

> str: byte; //Содержит считанный байт

> oldstr, symbol, word, line, space: Integer; //Стат. данные

>begin

> symbol:= 0; //обнуляем предыдущие результаты

> word:= 0;

> space:= 0;

> line:= 0;

> if FileExists(Edit1.Text) //проверяем, существует ли файл

> then begin

>  AssignFile(f, Edit1.Text); //связываем файл с переменной f

>  reset(f); //открываем файл на чтение

>  while not eof(f) do

>  begin //читаем файл до достижения конца файла

>   oldstr:= str;

>   Read(f, str); //считываем символ в переменную str

>   if ((str <> 32) and (str <> 13) and (str <> 10)) then symbol:= symbol + 1; {пополняем количество символов, если он не является переводом строки, кодом новой строки или пробелом}

>   //если считан пробел, пополним счетчик пробелов


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


MFC и OpenGL

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


Как функции, не являющиеся методами, улучшают инкапсуляцию

Когда приходится инкапсулировать, то иногда лучше меньше, чем большеЯ начну со следующего утверждения: Если вы пишете функцию, которая может быть выполнена или как метод класса, или быть внешней по отношению к классу, Вы должны предпочесть ее реализацию без использования метода. Такое решение увеличивает инкапсуляцию класса. Когда Вы думаете об использовании инкапсуляции, Вы должны думать том, чтобы не использовать методы.Удивлены? Читайте дальше.


Обработка событий в С++

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


Программное обеспечение встроенных систем. Общие требования к разработке и документированию

Embedded system software. General requirements for development and documentationСтандарт подготовлен в развитие ГОСТ Р ИСО/МЭК 12207-99 «Информационная технология. Процессы жизненного цикла программных средств» с целью учета специфики разработки и документирования программного обеспечения встроенных систем реального времени.


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.