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

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

Жанры

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

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

Практик

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

Война

Валериев Игорь
7. Ермак
Фантастика:
боевая фантастика
альтернативная история
5.25
рейтинг книги
Война

Товарищ "Чума" 7

lanpirot
7. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 7

Приказано выжить!

Малыгин Владимир
1. Другая Русь
Фантастика:
боевая фантастика
попаданцы
альтернативная история
7.09
рейтинг книги
Приказано выжить!

Волкодав

Семёнова Мария Васильевна
1. Волкодав
Фантастика:
фэнтези
героическая фантастика
9.46
рейтинг книги
Волкодав

Ярар. Начало

Грехов Тимофей
1. Ярар
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ярар. Начало

Воронцов. Перезагрузка

Тарасов Ник
1. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Воронцов. Перезагрузка

Родословная. Том 4

Ткачев Андрей Юрьевич
4. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Родословная. Том 4

Глэрд VIII: Базис 2

Владимиров Денис
8. Глэрд
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Глэрд VIII: Базис 2

Главбухша

Романов Владислав Иванович
Любовные романы:
остросюжетные любовные романы
5.00
рейтинг книги
Главбухша

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

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

Апокриф

Вайс Александр
10. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Апокриф

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

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

Ваше Сиятельство 2

Моури Эрли
2. Ваше Сиятельство
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Ваше Сиятельство 2