Книга: Системное программное обеспечение. Лабораторный практикум

Текст программы распознавателя

Текст программы распознавателя

Кроме перечисленных выше модулей необходим еще модуль, обеспечивающий интерфейс с пользователем. Как и в лабораторной работе № 1, этот модуль (FormLab2) реализует графическое окно TLab2Form на основе класса TForm библиотеки VCL и включает в себя две составляющие:

• файл программного кода (файл FormLab2.pas);

• файл описания ресурсов пользовательского интерфейса (файл FormLab2.dfm).

Кроме описания интерфейсной формы и ее органов управления модуль FormLab2 содержит переменную (listLex), в которую записывается ссылка на таблицу лексем.

Интерфейсная форма, описанная в модуле, содержит следующие основные органы управления:

• многостраничную вкладку (PageControll) с двумя закладками (SheetFile и SheetLexems) под названиями «Исходный файл» и «Таблица лексем» соответственно;

• на закладке SheetFilе:

– поле ввода имени файла (EditFile), кнопка выбора имени файла из каталогов файловой системы (BtnFile), кнопка чтения файла (BtnLoad);

– многострочное поле для отображения прочитанного файла (Listldents);

• на закладке SheetLexems:

– сетка (GridLex) с тремя колонками для отображения данных о прочитанных лексемах;

• кнопка завершения работы с программой (BtnExit).

Внешний вид двух закладок этой формы приведен на рис. 2.3 и 2.4.


Рис. 2.3. Внешний вид первой закладки интерфейсной формы для лабораторной работы № 2.


Рис. 2.4. Внешний вид второй закладки интерфейсной формы для лабораторной работы № 2.

Чтение содержимого входного файла организовано точно так же, как в лабораторной работе № 1.

После чтения файла создается таблица лексем (ссылка на нее запоминается в переменной listLex) и вызывается функция MakeLexList, результат работы которой помещается во временную переменную iErr.

Если обнаружена ошибка, пользователю выдается сообщение об этом и указатель в списке строк позиционируется на место, где обнаружена ошибка.

Если ошибок не обнаружено, то на основании считанной таблицы лексем listLex заполняется сетка GridLex, которая очень удобна для наглядного представления таблицы лексем:

• первая колонка – порядковый номер лексемы;

• вторая колонка – тип лексемы (ее внешний вид);

• третья колонка – информация о лексеме.

Полный текст программного кода модуля интерфейса с пользователем приведен в листинге П2.4 в приложении 2, а описание ресурсов пользовательского интерфейса – в листинге П2.5 в приложении 2.

Полный текст всех программных модулей, реализующих рассмотренный пример для лабораторной работы № 2, приведен в приложении 2.

Оглавление книги


Генерация: 1.305. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз