Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Задание 1. Разработка программы редактирования файлов специализированного формата.






 

Исходные данные:

  1. Программа является оконным Windows32 приложением.
  2. Программа написана на языке Си++ в среде Visual C++ 6.0, VS.NET или VS2005.
  3. При написании программы используются только функции и структуры Win API32. Никаких других технологий или «надстроек» не должно быть использовано.

 

Требования к внешнему виду программы:

 

  1. Типовой рекомендуемый внешний вид приложения:

 

На рисунке нанесены условные обозначения, описанные далее.

Размер окна по вертикали и горизонтали может меняться пользователем, но он не может быть меньше размера 400 на 200 пикселей.

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

 

  1. Смысл программы сводится к поиску-открытию-редактированию-записи файлов специализированного формата.

Формат файла:

Заголовок

Элемент 1

Элемент 2

Элемент 3

Файл является текстовым, т.е. содержит только символы ASCII набора.

Расширение у файла может быть “txt”, “htm”, “html”, “php”.

Заголовок – строка “<! --start_bwc--> ”, расположенная где-то в первой строке файла.

Любой элемент имеет следующий формат:

<! --start_edit type=" ####" name=" $$$$$" body=”%%%”-->

где:

#### - тип элемента, может быть одним из:

- shorttext

- longtext

- image

$$$$$ - имя элемента, может быть любым текстом в одну строку

%%% - тело элемента, зависит от типа элемента.

Существует 3 типа элементов:

    1. Текст в одну строку.

Поле type=”shorttext”

Поле body содержит любую (одну) строку текста

    1. Текст в несколько строк.

Поле type=”longtext”

Поле body содержит любую текст в несколько строк

    1. Картинка в формате BMP

Поле type=”image”

Поле body содержит относительный путь к файлу с картинкой, например " img\1a.bmp"

Элементы следуют друг за другом. Между элементами может находиться любой текст, который не обрабатывается программой.

Редактируемыми элементами являются тексты (body) для элементов shorttext и longtext. Остальные элементы (как и текст вне элементов) не должны меняться при редактировании и сохранении файла.

 

  1. Программа содержит меню (желтый кружок с цифрой 1), в котором в удобной для разработчика форме представлены след. команды (в скобках указаны Hotkey комбинации клавиатуры - ускорители):

- сменить активный каталог (Ctrl+D)

- записать редактируемый файл (Ctrl+S)

- выйти из программы (Alt+F4)

- копировать выделенный текст в буфер (Ctrl+C)

- вырезать выделенный текст и поместить в буфер (Ctrl+X)

- вставить в указанное место (заменить выделенный текст) текстом из буфера (Ctrl+V)

- отменить последнюю операцию по вставке/замене (Ctrl+Z)

- вывод информации о программе и авторах

 

  1. Программа содержит Toolbar (желтый кружок с цифрой 2) со след элементами:

- сменить активный каталог

- записать редактируемый файл

- выйти из программы

- копировать выделенный текст в буфер

- вырезать выделенный текст и поместить в буфер

- вставить в указанное место (заменить выделенный текст) текстом из буфера

- отменить последнюю операцию по вставке/замене

 

  1. В правом поле программы отображены Элементы один за другим сверху вниз. Размер всех элементов одного формата фиксированный.

А) Для Элемента shorttext (желтый кружок с цифрой 3) это одна строка с именем элемента (лиловый кружок с буквой A) [не редактируемое] и поле с телом Элемента в одну строку (лиловый кружок с буквой B) [редактируемое].

Б) Для Элемента longtext (желтый кружок с цифрой 4) это одна строка с именем элемента (лиловый кружок с буквой A) [не редактируемое] и поле с телом Элемента в 4-6 строк (лиловый кружок с буквой B) [редактируемое].

В) Для Элемента image (желтый кружок с цифрой 5) это одна строка с именем элемента (лиловый кружок с буквой A) [не редактируемое] и поле с картинкой по ссылке, указанной в теле Элемента (лиловый кружок с буквой B) [не редактируемое].

Размер вывода тела для Элементов shorttext и longtext определяется текущим размером окна. В случае изменения горизонтальных размеров окна размер полей редактирования (лиловый кружок с буквой B) также изменяется программой автоматически.

 

  1. В левом поле программы отображено дерево с именами файлов и папок.

Вершиной дерева является текущий каталог, который может быть изменен (выбран) через меню или toolbar (сменить активный каталог).

Папки, расположенные в каталоге демонстрируются все.

Файлы показываются только те, что задержат заголовок спец. формата.

Папки показываются отсортированными по алфавиту, и все папки расположены до файлов.

При клике мышкой на файле информация о его Элементах отображается в правой части.

При двойном клике на имя папки – она становится активным каталогом.

При двойном клике на папку “..” – родительская папка (если есть) становится активным каталогом.

Двойном клик на активный каталог воспринимается как команда меню “сменить активный каталог”.

При выходе из программы имя текущего активного каталога и активного (просматриваемого) файла сохраняются в реестре.

При старте программы информация об активном каталоге и активном файле берется из реестра (если есть).

 

  1. Если отображение всех элементов файла не помещается по вертикали, то у окна автоматически появляется scrollbar (желтый кружок с цифрой 7). Его настройки устанавливаются программой автоматически таким образом, чтобы при его использовании можно было увидеть все элементы в правой части окна (осуществлять прокрутку содержимого).

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.