Разработать программу формирования текста из исходного текстового файла по заданным параметрам образца. Перенос строк осуществлять по границе слова. Предусмотреть возможности:
- изменения шрифта;
- изменение размера шрифта;
- типа выравнивания;
- цвета текста и фона;
- сохранения текста в файл;
- открытие текстового файла
- поиска и замены текстового фрагмента.
Данное задание возможно реализовать на любом из известных языков программирования, и для закрепления и усовершенствования своих практических навыков разработки алгоритмов, написания и отладки программ на языке программирования С++ я использовал среду разработки C++Builder 6
Поставленная передо мной задача посвящена редактированию текста. Редактирование текста является очень важной частью оформления документов.
Разрабатываемая программа – «Текстовый редактор» не является какой-то сверхновой программой и на сегодняшний день имеет огромное количество подобных приложений, разработанных как отдельными людьми, так и целыми корпорациями.
В данной курсовой работе стоит задача, даже не повторить их, а всего лишь проработать некоторые функции работы с текстом. В результате работы должна получиться программа, которой, в принципе, можно пользоваться в повседневной жизни в качестве замены встроенного редактора «WordPad».
1. ВЫБОР И ОБОСНОВАНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ
В качестве языка программирования для реализации автоматизированной рабочей программы зав.отделения выбран С++ и, основанная на нем среда разработки C++Builder 6. Это мощная система визуального объектно-ориентированного программирования, позволяющая решать множество задач, в частности:
* Создавать законченные приложения для Windows самой различной направленности, от чисто вычислительных и логических, до графических и мультимедиа.
* Быстро создавать (даже начинающим программистам) профессионально выглядящий оконный интерфейс для любых приложений, написанных на любом языке. В частности, с помощью C++Builder можно объединить в единую систему с удобным современным интерфейсом имеющиеся на предприятии прикладные программы DOS, Windows и др. Интерфейс удовлетворяет всем требованиям Windows и автоматически настраивается на ту систему, которая установлена на компьютере пользователя, поскольку использует многие функции, процедуры, библиотеки Windows.
* Создавать мощные системы работы с локальными и удаленными базами данных любых типов. При этом имеются средства автономной отладки приложений с последующим выходом в сеть.
* Создавать многозвенные распределенные приложения, основанные на различных технологиях.
* Создавать приложения, которые управляют другими приложениями, в частности, такими программами MicrosoftOffice, как Word, Excel и др.
* Создавать кросс-платформенные приложения, которые можно компилировать и эксплуатировать как в Windows, так и в системе Linux.
* Создавать приложения различных классов для работы в.
* Создавать профессиональные программы установки для приложений Windows, учитывающие всю специфику и все требования Windows.
* И многое, многое другое, включая создание отчетов, справочных систем, библиотек DLL, компонентов ActiveX и т.п.
C++Builder — чрезвычайно быстро развивающаяся система, так как ее создатели постоянно отслеживают все тенденции информационных технологий. Новые версии выпускаются ежегодно.
Для большинства применений возможности эквивалентных версий С++Вuilder и Delphi примерно одинаковы. Это не удивительно, поскольку язык ObjectPascal в настоящее время очень близок (конечно, если не учитывать синтаксис) к C++. Так что для большинства задач выбор C++ или ObjectPascal, и, соответственно, C++Builder или Delphi — дело вкуса и привычки программиста. Но все-таки язык C++ пока несколько более мощный, чем ObjectPascal. К тому же в C++ наработаны более обширные библиотеки функций. Так что некоторые, сравнительно сложные задачи проще решать с помощью C++Builder.
Из прекрасного средства создания приложений для WindowsC++Builder превращается в инструмент создания приложений для многозвенных распределенных кросс-платформенных корпоративных информационных систем.
2. ФИЗИЧЕСКАЯ СТРУКТУРА ПРОГРАММЫ
Проект C++Builder состоит из форм, модулей с их заголовочными файлами и файлами реализации, установок параметров проекта, ресурсов и т.д. Вся эта информация размещается в файлах. Многие из этих файлов автоматически создаются C++Builder, когда мы строим наше приложение. Ресурсы, такие, как битовые матрицы, пиктограммы и т.д., находятся в файлах, которые мы получаем из других источников или создаем при помощи многочисленных инструментов и редакторов ресурсов, имеющихся в нашем распоряжении (см. табл. 1).
Таблица 1 – Физическая структура программы
Наименование | Назначение |
Головной файл проекта (.cpp)TeRAn.cpp | С++Builder создает файл .cppдля головной функции WinMain, инициирующей приложение и запускающей его на выполнение. |
Файл опций проекта (.bpr)TeRAn.bpr | Этот текстовый файл содержит установки опций проекта и указания на то, какие файлы должны компилироваться и компоноваться в проект. Файл сохраняется в формате XML. |
Файл реализации модуля (.cpp)TeR.cpp | Каждой создаваемой вами форме соответствует текстовый файл реализации модуля, используемый для хранения кода. Иногда вы можете сами создавать модули, не связанные с формами.Текстовый файл реализации главного окна программы |
Unit1.cpp | Текстовый файл реализации модуля «О программе» |
Unit2.cpp | Текстовый файл реализации модуля «Справка» |
Заголовочный файл модуля (.h) | Каждой создаваемой вами форме соответствует не только файл реализации модуля, но и его заголовочный файл с описанием класса формы. Вы можете и сами создавать необходимые заголовочные файлы. |
Файл формы (.dfm) | Это двоичный или текстовый файл, который С++Builder создает для хранения информации о ваших формах. Вы можете смотреть этот файл в текстовом виде или в виде формы. Каждому файлу формы соответствует файл модуля (.cpp). |
Исполняемый файл (.exe)TeRAn.exe | Это исполняемый файл вашего приложения. Он является автономным исполняемым файлом, для которого больше ничего не требуется, если только вы не используете библиотеки, содержащиеся в пакетах, DLL, OCX и т.д. |
Объектный файл модуля (.obj) | Это откомпилированный файл модуля (.cpp), который компонуется в окончательный исполняемый файл. |
Файл ресурсов проекта (.res) | Двоичный файл, содержащий ресурсы проекта: пиктограммы, курсоры и т.п. по умолчанию содержит только пиктограмму проекта. Может дополнятся с помощью Редактора Изображений (ImageEditor) |
Файл таблицы символов (.tds) | Двоичный файл, используемый отладчиком в процессе отладки приложения. |
Файлы резервных копий (.~cpp, .~h, .~bp, .~df ) | Это соответственно файлы резервных копий для файлов реализации модуля, заголовочного, проекта и формы. Если вы что-то безнадежно испортили в своем проекте, можете соответственно изменить расширение этих файлов и таким образом вернуться к предыдущему не испорченному варианту. |
Из всех перечисленных файлов важнейшими являются файлы .cpp, .h, .dfm, .bpr, .res. Это те файлы, которые вы, например, должны перенести на другой компьютер, если захотите продолжить на нем работу над своим проектом. Все остальные файлы C++Builder создаст автоматически в процессе компиляции проекта и его отладки.
Информация о формах C++Builder хранится в трех файлах: .cpp, .h, .dfm. В двоичном или текстовом файле с расширением .dfm хранится информация о внешнем виде формы, ее размерах, местоположении на экране и т.д.
Основной файл, с которым вы работаете – файл реализации модуля .cpp, в котором хранится код, соответствующий данной форме. В текстовом заголовочном файле с расширением .h хранится объявление класса вашей формы. Весь основной текст этого файла C++Builder формирует автоматически по мере проектирования вами формы.
Если вы поочередно работаете над многими проектами, то пространство на диске может неэффективно забиваться ненужными файлами. В этом случае полезно удалять вспомогательные файлы тех проектов, над которыми вы временно не работаете. Прежде всего, это относится к файлам .obj, .res, .tds, .~*. Особо обратите внимание на файлы .tds, объем которых может быть очень большим (несколько мегабайт).
Теперь несколько слов о выполняемом файле .exe и о файлах пакетов. В C++Builder можно разрабатывать прикладные программы двух видов – автономные выполняемые файлы .exe и программы с поддержкой пакетов (packages) времени выполнения. В последнем случае размер выполняемого файла существенно сокращается, но зато вы должны поставлять пользователю не только выполняемый модуль, но и файлы поддерживающих его пакетов. Во всяком случае, во время отладки, имеет смысл включать поддержку пакетов времени выполнения.
Это существенно сократит размеры выполняемых файлов и сбережет вам немало дискового пространства.
Разобьем поставленную перед нами задачу на отдельные подзадачи:
1. Создание меню программы.
2. Вывод на экран справки, содержащей руководство по управлению и информацию об авторе.
Программа содержит в своем составе все необходимые пакеты для работы независимо от C++Buildera. Запуск производится по открытию файла TeRAn.exe Сразу после этого без промедления открывается главное окно программы (см. рисунок 1)
Рисунок 1 - Главное окно приложения
В этом окне расположены основные средства управления программой.
Непосредственно в работе с текстом участвует форма «Справка», представленная на рисунке 2. Текст справки считывается из файла hlp, который всегда должен находится в одной папке вместе с исполняемым файлом TeRAn.exe