Реализация функций контроля и управления на базе Win32 API: Методические указания по выполнению лабораторного практикума, страница 18

Где – символ «+» означает использование функции столбца.

6  ЛАБОРАТОРНАЯ РАБОТА №6. ПОИСК И ВИЗУАЛИЗАЦИЯ НАЙДЕННЫХ СЛОВ В ТЕКСТОВЫХ ДОКУМЕНТАХ

Целью данной работы является изучение простейших приемов поиска и визуализации полезной информации на примере текстового документа, а также закрепление навыков программирования в интегрированной среде Borland C++ Builder для операционных систем Windows 98, 2000, XP и NT.

Порядок выполнения лабораторной работы  №6:

1.  Выполнить запуск основного приложения Borland C++ Builder. Открыть новый проект для разработки, используя команду File|New Application. Сохранить новый проект в папке D:/VMSS/U41(U42)/<user>, используя команду File|Project As. Имена папки <user>, проекта и файла присваиваются самостоятельно.

2.  С использованием Палитры компонентов и Инспектора объектов создать первоначальный образ окна разрабатываемого приложения. Примерный вид окна приложения приведен на Рисунок 6.1. Дизайн окна определяется самостоятельно. В процессе работы окно может дополняться другими компонентами.

Рисунок 6.1 - Вид окна приложения

3.  Разработать процедуру открытия текстового файла. Данная процедура должна вызываться по нажатию кнопки «Открыть…». Для реализации процедуры необходимо использовать стандартный диалоговый компонент «OpenDialog». Установить свойства Filter и FilterIndex для выбора текстовых файлов в списке файлов. По желанию можно установить первоначальный директорий для выбора файла. Метод Execute активизирует окно диалога во время выполнения программы. После нажатия кнопки «ОК» имя выбранного файла заносится в свойство FileName. Чтение файла в поле RichEdit  производится методом RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName).

4.  В окно приложения вывести имя файла FileName и размер текстового документа RichEdit1->Lines->Text.Length().

5.  Отладить процедуру открытия файла.

6.  При открытии текстового файла, подготовленного в редакторах DOS, русские символы не отображаются в поле RichEdit. Поэтому требуется перекодировка из OEM в Ansi, которая выполняется при помощи функции API OemToChar(txt,txt). Требуется написать процедуру перекодировки, которая должна выполнять три действия: запись содержимого поля RichEdit в промежуточный буфер txt с использованием функции strcpy(); вызов функции API OemToChar(txt,txt); перезапись содержимого буфера в поле RichEdit.

7.  Отладить процедуру перекодировки.

8.  Разработать процедуру поиска заданного в поле Edit1 ключевого слова и визуализации найденных слов в поле RichEdit. Для визуализации необходимо использовать RTF-формат, который позволяет выделять отдельные участки текста определенным цветом. RTF-формат содержит набор служебных последовательностей, которые называются команды управления настройки программы чтения файлов в RTF-формате. Для решения задачи визуализации потребуются следующие последовательности:

// константы RTF формата

#define TXTCOLOR       "\\plain\\fs20\\cf1 "  // начало подсветки

#define TXTNOCOLOR "\\plain\\fs20 "      // конец подсветки

#define TXTSTART        "{\\rtf1\\ansi\\deff0\\deftab720 {\\fonttbl {\\f0\\fmodern Courier} } \r\n {\\colortbl\\red0\\green0\\blue0;\\red255\\green0\\blue0;}\r\n"        // начало текста

#define TXTEND            "}\\par"  // конец текста

#define TXTPAR            "\\par "  // конец абзаца

#define TXTCR              "\r\n"  // перевод строки.

9.  Процедура поиска должна разрабатываться в несколько этапов:

1 этап - преобразование текстового файла в RTF-формат (установка констант начала и конца текста);

2 этап – замена символов перевода строки «\r\n» на конец абзаца «\par»;

3 этап – поиск ключевого слова и фиксация начала и конца слова константами TXTCOLOR и TXTNOCOLOR;