Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

 //Печатаем заголовок отчета

 TopReport("Сортировка по фамилии");

 //Выводим содержимого файла с данными

 ListFile;

 //Печатаем итоговую информацию

 BottomReport("Всего записей: "+PersonArr.length);

 //Открываем выходной файл в Блокноте

 MakeOut;

}

/******************* Начало **********************************/

Main;

/*************
Конец *********************************************/

Добавление информации в записную книжку

В принципе можно добавлять информацию в записную книжку, просто записывая строки с соответствующими тегами в текстовый файл book.xml. Однако лучше для этой цели воспользоваться специальными методами XML DOM (в этом случае не нужно, например, заботиться о закрывающих тегах).

Для иллюстрации методов XML DOM, позволяющих записывать данные в XML-файл, рассмотрим сценарий AddRecord.js, в котором производится добавление в book.xml следующей записи:

<Person>

 <LastName>Сидоров</LastName>

 <Name>Aнтон</Name>

 <Phone>18-18-18</Phone>

 <Strееt>Саранская</Street>

 <House>12</House>

 <App>4</App>

 <Note>Запись добавлена из сценария</Note>

</Person>

Процесс добавления записи в книжку осуществляется в функции

AddRecord
. Здесь сначала заполняются нужными значениями поля объекта
PersonRec
(функция
MakePersonRec
), а затем данные из
PersonRec
добавляются в файл book.xml (функция
RecordToFile(PersonRec)
):

function AddRecord {

 //Заполняем поля объекта PersonRec

 MakePersonRec;

 //Сохраняем данные из объекта PersonRec в XML-файле

 RecordToFile(PersonRec);

}

Итак, наиболее важной в сценарии является функция

RecordToFile(PersonRec)
. В этой функции сначала создается экземпляр
XMLDoc
объекта
DOMDocument
и с помощью метода
load
загружается файл book.xml:

XMLDoc = WScript.CreateObject("Msxml.DOMDocument");

XMLDoc.load(PathBook);

Указатель на корневой элемент сохраняется в переменной Root:

Root=XMLDoc.documentElement;

После этого с помощью метода

createElement
создается новый элемент
Person
, который затем добавляется в book.xml (метод
appendChild
):

//Создаем XML-элемент Person

NewElem=XMLDoc.createElement("Person");

//Добавляем
новый элемент в XML-файл

Root.appendChild(NewElem);

Другие добавляемые элементы (

LastName
,
Name
,
Phone
,
Street
,
House
,
App
и
Note
) должны быть дочерними относительно элемента
Person
, поэтому в переменной
Root
мы сохраним ссылку на последний добавленный элемент
Person
:

Root=Root.lastChild;

Все элементы добавляются с помощью вызовов методов

createElement
и
appendChild
, например:

//Создаем элемент LastName

NewElem=XMLDoc.createElement("LastName");

//Добавляем новый элемент в XML-файл (внутри элемента Person)

Root.appendChild(NewElem);

Содержимое добавляемых элементов (свойство

text
) берется из соответствующих полей объекта
PersRec
, например:

//Подставляем в качестве содержимого элемента LastName

//значение поля LastName объекта PersRec

Root.lastChild.text=PersRec.LastName;

После того как все нужные элементы добавлены, измененный файл book.xml с помощью метода save сохраняется на жестком диске:

XMLDoc.save(PathBook);

Полный текст сценария AddRecord.js приводится в листинге 6.5.

Листинг 6.5. Добавление данных в XML-файл с помощью XML DOM

/*******************************************************************/

/* Имя: AddRecord.js */

/* Язык: JScript */

/* Описание: Записная книжка (данные в XML-файле book.xml). */

/* Вставка новых элементов в XML-файл */

/*******************************************************************/

//Объявляем переменные

var

 WshShell,

 BasePath, //Путь к текущему каталогу

 PathBook, //Путь к файлу с данными

 XMLDoc, //XML-файл с данными

 NomRec=0, //Счетчик количества записей

 PersonRec, //Объект для хранения данных об одном человеке

 PersonArr; //Массив для хранения объектов PersonRec

//Инициализируем константы для диалоговых окон

var vbYesNo=4,vbQuestion=32,vbInformation=64,vbYes=6,vbOkOnly=0;

//Конструктор объекта Person

Поделиться:
Популярные книги

#Бояръ-Аниме. Газлайтер. Том 13

Володин Григорий Григорьевич
13. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
фэнтези
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 13

Чужое наследие

Кораблев Родион
3. Другая сторона
Фантастика:
боевая фантастика
8.47
рейтинг книги
Чужое наследие

Учитель из прошлого тысячелетия

Еслер Андрей
6. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Учитель из прошлого тысячелетия

Последний Герой. Том 2

Дамиров Рафаэль
2. Последний герой
Фантастика:
попаданцы
альтернативная история
4.50
рейтинг книги
Последний Герой. Том 2

Личный аптекарь императора. Том 4

Карелин Сергей Витальевич
4. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Личный аптекарь императора. Том 4

Неучтенный элемент. Том 2

NikL
2. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 2

Тринадцатый VIII

NikL
8. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый VIII

Дважды одаренный. Том VI

Тарс Элиан
6. Дважды одаренный
Фантастика:
аниме
альтернативная история
фэнтези
фантастика: прочее
5.00
рейтинг книги
Дважды одаренный. Том VI

Лекарь Империи 4

Карелин Сергей Витальевич
4. Лекарь Империи
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Лекарь Империи 4

Источник

Билик Дмитрий Александрович
11. Бедовый
Фантастика:
юмористическое фэнтези
городское фэнтези
мистика
7.00
рейтинг книги
Источник

Частный сыщик

Кренц Джейн Энн
Любовные романы:
остросюжетные любовные романы
8.00
рейтинг книги
Частный сыщик

Второгодка. Книга 5. Презренный металл

Ромов Дмитрий
5. Второгодка
Фантастика:
городское фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Второгодка. Книга 5. Презренный металл

Кодекс Крови. Книга ХI

Борзых М.
11. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХI

Первый среди равных. Книга IV

Бор Жорж
4. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга IV