2.2.2 Обработка данных xml
Данные XML – файла читаются и добавляются с помощью DataGridView. Посредством файлового диалогового окна пользователь может выбирать дисковод и просматривать файловую систему для выбора нужного файла. Все что должно возвращать это диалоговое окно — имя файла, определенное пользователем. Класс OpenFileDialog позволяет пользователям выбирать файл, который требуется открыть, по имени. И наоборот, класс SaveFileDial од позволяет пользователям указывать имя файла, который требуется сохранить.
Класс OpenFileDialog позволяет пользователям выбирать файл для открытия. Новый экземпляр класса OpenFileDialog создается до вызова метода ShowDialog ():
2.3 Пример работы XML разработчика
При запуске программы отображается окно:
Рис.1 – Общий вид XML обработчика
Чтобы добавить новые элементы, необходимо пройти в меню «Файл» и нажать на кнопку «Открыть».
После открытия документа окно программы выглядит так:
Рис.2 – Открытие файла
При нажатии кнопки «Поиск» программа будет выглядеть:
Рис.3 – Поиск по файлу
2.4 Разработка редактора
Текстовое поле редактора основано на элементе ввода данных textBox1. Обработка текста идет при помощи регулярных выражений.
Регулярные выражения — это формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов (символов-джокеров, англ. Wildcard characters). По сути это строка-образец (англ. pattern, по-русски её часто называют «шаблоном», «маской»), состоящая из символов и метасимволов и задающая правило поиска.
Основным строительным блоком регулярных выражений является одно символьный шаблон. Он соответствует просто этому символу. Символы могут быть сгруппированы вместе в класс. Класс представляется как пара из открывающей и закрывающей квадратных скобок и списка символов между ними. Класс представляет собой также одно символьный шаблон. Один и только один из этих символов должен присутствовать в тексте, который совпадет с шаблоном. На пример: [abc] .
Для работы с регулярными выражениями в C# предусмотрен класс System.Text.RegularExpressions.Regex. Структура регулярных выражения полностью аналогична регулярным выражениям, используемым в PHP. Для выполнения поиска по строке, замены, или выделения некоторых блоков используются различные методы ранее упомянутого класса. Текст регулярного выражения передается в конструктор Regex'a (хотя это не обязательно, ибо его можно передать и непосредственно в нужный Вам метод).
Для проверки того, подходит-ли строка под регулярное выражение используется метод Regex.IsMatch (), возвращающий true если текст подходит под регулярное выражение и false если нет. Его конструктор может принимать следующие наборы данных:
IsMatch(stringinput, intstartat)
Здесь input — обрабатываемая строка, а startat — позиция в строке, с которой следует начинать поиск. Применяется регулярное выражение, ранее переданное в конструктор класса Regex.
Для замены текста с помощью регулярынх выражений используется метод Regex.Replace (), возвращающий string-строку с измененным текстом. Основные способы передачи данных вего конструктор:
Replace(stringinput, stringpattern, stringreplacement)
Здесь input — обрабатываемая строка, pattern — текст регулярного выражения, а replacement — текст, на который надо заменить найденные области.
Для разбиения строки на части используется метод Regex.Split (), который возвращает массив строк (string[]) с частями исходной строки. Основные способы передачи данных в конструктор:
Split(stringinput, stringpattern)
Разбивает строку input на части, описанные в регулярном выражении pattern.
Для поиска совпадений используется метод Regex.Matches (). Этот метод возвращает массив класса MatchCollection, содержащий найденные совпадения и ряд другой информации.
Доступ к найденному тексту производится с помощью конструкции match[i].Value. Получить количество найденных совпадений можно из свойства match.Count.
Конструкторы класса:
Matches(string input, string pattern)
input — обрабатываемый текст, pattern — текст регулярного выражения.
2.5 Пример работы редактора текста
Ниже представлен пример работы с текстовым редактором, проверка в котором основана на регулярных выражениях.
Рис.4 – Текст перед изменением
Через регулярные выражения, e-mail заключается в круглые скобки, по нажатию кнопки “e-mail”.
Рис.5 – Текст после изменения
2.6 Руководство пользователя
Программа состоит из двух подпрограмм – подпрограммы обработки XML документа и подпрограммы текстового редактора. Обе подпрограммы могут использоваться независимо друг от друга.
Для использования обработчика XML запускаем программу и выбираем xml-файл для открытия. Для добавления новых элементов указываем их параметры в соответствующих текстовых полях и нажимаем кнопку. Для удаления элементов просто выделаем поля и удаляем записи в ручную. Чтобы сохранить все внесенные изменения нажимаем на кнопку «Сохранить» и указываем необходимое имя файлу.
Текстовый редактор вызывается при нажатии на кнопку «Редактор» в главной форме приложения. При этом открывается отдельное окно, в текстовом поле которого мы можем писать пользовательский текст. Исправлять текст на основе регулярных выражений можно доступными в форме кнопками.
ВЫВОДЫ
В данной курсовой работе реализована программа-обработчик для работы с XML файлом и его данными. Данная программа подключает данные каталога фильмов из xml-файла и выполняет над ними простейшие действия : поиск в данных, добавление и удаление фотографии в магазин. Кроме того, через данную программу возможно открывать любой xml-файл, а также реализован простейший текстовый редактор с возможностью исправления грамматических ошибок на основе регулярных выражений.
Результатом выполнения данной курсовой работы стало получение практических навыков работы с текстовыми данными различного формата: как языка разметки XML, так и текстового редактора с грамматическим исправлением по регулярным выражениям. Полученные навыки в наше время очень актуальны, т.к. курсовая работа выполнялась на популярном языке программирования высокого уровня C# платформы .NET , а используемые методы обработки данных широко используются в различных целях.