Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 355

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 349 350 351 352 353 354 < 355 > 356 357 358 359 360 361 .. 404 >> Следующая


полевуасе Polling . {

public class Poll (

private int [] my Votes; private string [[] myAnswers; private string myQuestlona; ¦

private int rayAnewerCount; private string щуРИепате;

Заметьте также, что мы изменили пространство имен на polling.

Метод public static Poll CarrentQ

Этот метод — единственный статический метод, он используется для получения экземпляра класса Poll с данными активного опроса, которые этот класс должен извлечь из XML-файла. Данный метод извлекает текст вопроса из тега <Qucation> в XML-файле н записывает его в свойство myQuestion. После этого он проходят в цикле по всем тегам <Апэиег> и переписывает значение Text в массив ir.yAnswera, а значения votes — в массив myvotes.

Поскольку метод предназначается для создания нового экземпляра класса Poll, то автор предпочел использовать для создания объекта Poll на основе XML-файла частный конструктор, в результате чего метод Current о становится очень простым — выполнение всей работы берет на себя конструктор:

public static Poll Current О {

Poll myPoll ¦ new Poll(9*C:spoils.xml*)j return myPoll

)
Практический пример 1 — web-сайт для проведения опросов

759

Здесь происходит только создание нового экземпляра Poll прн помощи ключевого олова new и передача конструктору строки с именем файла. Обратите внимание на то, что мы добавляем символ в начало строки, что позволяет использовать в названии файла символ обратного слэша (в противном случае пришлось бы использовать следующую запись 'c:\\poiis.xmi*; применение двойного обратного слэша может оказаться очень громоздким). После создания нового объекта мы просто возвращаем его нз метода. Теперь приступим к рассмотрению нового конструктора.

Метод private Poll(string filename)

Конструктор, который принимает имя файла-в качестве своего единственного параметра, используется при создании объекта рои и конфигурировании его посредством данных в XML-файле. Есть несколько возможностей извлечению данных из XML-файла. Можно либо последовательно каждый узел и извлекать необходимые данные, либо считывать только определенные участки данных, которые требуются (например, сначала строку Question, затем все строки Answer и т. д.). Есть и другая возможность — сериализовать объект Poll на диск, а затем десериализовать его и тем самым воссоздать объект в памяти. Существует и четвертая возможность: считать XML-файл в объект DataSet, что позволит обращаться с ннм так же, как н с любым другим источником данных. Для нашего примера мы выбираем последний путь — считываем XML-файл в объект DataSet с помощью ADO.NET.

На приведенной ниже диаграмме видно, что при загрузке XML-файла в набор данных ADO.NET создаются две таблицы (что в объектах DataSet может храниться сразу несколько связанных таблиц). Таблица с номером ноль представляет тег <poii> и содержит всего одну строку и один столбец; в клетке этой таблицы содержится вопрос текущего опроса. Таблица с номером один содержит в себе данные тега <Answer>; в ней хранятся все ответы опроса в виде двух столбцов, по одной строке на каждый ответ:

<?xml vv.rai.on *ut?-B *?>

<Poll Ousi*tion»-whftt development,., ?m> <Апльfar TcJTt""C#“ VQten4*lQ*/>

<Anaw«r T*Kt*4>+* Vcitejfr*'2V>

<Anawer T*xt»'Java* Vot#*-"34"/>

<Answer Tftxt.= “JavaScript' Voc.«a=‘12"/> <Answcr Text»'Vi3ual Basic' УоЬса='42‘/> </Poll>

Строке 0

Таблица 0 Таблица 1
Вопрос Текст Vote*
"vvtiet development..?* Строка 0 C# 10
Столбец 0 Строка 1 C++ 2
Строка 2 Java 34
Строка 3 JavaScript 12
Строка 4 VlsualBaiic 42
Столбец 0 Столбец 1

Пройдем последовательно по всему методу шаг за шагом, создавая код для загрузки XML-фанла в набор данных. Нам придется написать здесь еще несколько строе кода по сравнению с тем, что написали до сих пор. Сначала мы определяем сигнатуру конструктора, в которую входит строка с именем XML-файла с данными опроса:

private Poll(string filename)

(

myFilename - filename;

Затем создаем объект DataSet, в котором будут храниться считываемые данные. Объекты DataSet обсуждались в главе 19. Мы создаем экземпляр объекта Filestream с помощью конструктора, которому передается как имя файла, так
760

Практический пример

и значение перечислимого типа FileMode.open, следовательно, требуется открыть данный файл для чтения:

DataSet щ/DataSet - пен DataSet О ;

Filestream fsReadXral = newFileStreamtfilename, FileMode.Open);

Чтобы оба этих объекта могли быть использованы, следует убедиться в том, что в самом начале файла присутствуют ссылки на соответствующие пространства имен:

using Syatem.Data; // Требуется для объекта DataSet

using System. 10; // Требуется для объекта filestream

Теперь переходим к созданию объекта xmlTextReader, который будем использовать для считывания данных из XML-файла. Для этого просто передаем созданный нами объект типа Filestream — fsReadxml:

XmlTextReader myXmlReader * pew Syatem.Xml.XmlTextReader(fsReadSml) ;

He забудьте сослаться на следующее пространство имен:

using System. Xml j // Для объекта XinlTextReader
Предыдущая << 1 .. 349 350 351 352 353 354 < 355 > 356 357 358 359 360 361 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.