Windows Script Host для Windows 2000/XP
Шрифт:
ElemList=obj.getElementsByTagName(tgName);
//Проверяем, есть ли в коллекции ElemList элементы
if (ElemList.length>0)
//Возвращаем значение тега tgName
return ElemList.item(0).text
else return "";
}
//Заполнение нового элемента массива
function PersonToArray(XNode) {
//Создаем новый
экземпляр PersonRec объекта Person
PersonRec=new Person;
//Заполняем поля объекта PersonRec
PersonRec.LastName=GetTagVal(XNode,"LastName");
PersonRec.Name=GetTagVal(XNode,"Name");
PersonRec.Phone=GetTagVal(XNode,"Phone");
PersonRec.Street=GetTagVal(XNode,"Street");
PersonRec.House=GetTagVal(XNode,"House");
PersonRec.App=GetTagVal(XNode,"App");
PersonRec.Note=GetTagVal(XNode,"Note");
//Сохраняем объект PersonRec в массиве
PersonArr[PersonArr.length]=PersonRec;
}
//Запись в выходной файл заголовка отчета
function TopReport(Mess) {
FOut.WriteLine(Mess);
FOut.WriteLine("--------------------");
FOut.WriteLine("");
}
//Запись в выходной файл итоговой информации
function BottomReport(Mess) {
FOut.WriteLine(Mess);
}
//Запись данных из объекта Person в выходной файл
function PrintPerson(PersRec) {
FOut.WriteLine("Фамилия: "+PersRec.LastName);
FOut.WriteLine("Имя: "+PersRec.Name);
FOut.WriteLine("Телефон: "+PersRec.Phone);
FOut.WriteLine("Улица: "+PersRec.Street);
FOut.WriteLine("Дом: "+PersRec.House);
FOut.WriteLine("Кв.: "+PersRec.App);
FOut.WriteLine("Заметки: "+PersRec.Note);
FOut.WriteLine("*********************************");
NomRec++;
}
//Просмотр содержимого выходного файла в Блокноте
function MakeOut {
//Закрываем выходной файл
FOut.Close;
//Открываем выходной файл в Блокноте
WshShell.Run("notepad "+PathOut,1);
}
//Построение путей к файлам
function InitPath {
BasePath=WshShell.CurrentDirectory+"\\";
//Путь
к файлу с данными
PathBook=BasePath+"book.xml",
//Путь к выходному файлу
PathOut=BasePath+"out.txt";
}
/************* Конец *********************************************/
Также в отдельный файл WSHInputBox.vbs мы поместим функцию
WSHinputBox(Message, Title)
на языке VBScript, с помощью которой из JScript-сценариев будет выводиться диалоговое окно со строкой ввода (напомним, что ни язык JScript, ни объектная модель WSH такой функции не предоставляют): Function WSHInputBox(Message,Title)
'Выводим диалоговое окно со строкой ввода
WSHInputBox = InputBox(Message,Title)
End Function
Сами задания из файла PhoneBook.wsf составлены (с некоторыми изменениями, на которых мы подробно останавливаться не будем) из одиночных сценариев, которые были рассмотрены в предыдущей главе: см. листинг 6.3 (просмотр всех записей в алфавитном порядке), листинг 6.4 (добавление записей) и листинг 6.5 (поиск записей по фамилии и удаление записей).
В листинге 7.3 приводится полный текст сценария PhoneBook.wsf.
Листинг 7.3. Многозадачный сценарий PhoneBook.wsf для работы с записной книжкой
<package>
<!-- ****************** Просмотр всех записей ******************* -->
<job id="SortName">
<script language="JScript" src="usage.js"/>
<script language="JScript">
//Создание массива объектов Person
function FileToArray {
var XML,Root,NomRec,CurrNode,ex,i;
//Создаем массив PersonArr
PersonArr=new Array;
//Создаем объект XML DOM
XML = WScript.CreateObject("Msxml.DOMDocument");
//Загружаем XML-документ из файла
XML.load(PathBook);
//Сохраняем в переменной Root ссылку на корневой элемент
//документа
Root=XML.documentElement;
//Перебираем все дочерние элементы первого уровня вложенности
//для корневого элемента
for (i=1; i<=Root.childNodes.length-1;i++) {
//Выделяем в коллекции XML-элементов i-й элемент
CurrNode=Root.childNodes.item(i);
//Добавляем новый элемент в массив объектов Person
PersonToArray(CurrNode);
}
Поделиться:
Популярные книги
Тройняшки не по плану. Идеальный генофонд
Роковые подмены
Любовные романы:
современные любовные романы
6.80
рейтинг книги
Барон играет по своим правилам
5. Закон сильного
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Завод-3: назад в СССР
3. Завод
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Секретарь лорда Демона
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Отец моего жениха
Любовные романы:
современные любовные романы
7.79
рейтинг книги
Идеальный мир для Лекаря 10
10. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Я тебя не отпущу
4. Оголенные чувства
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Бастард Императора. Том 7
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Девочка из прошлого
3. Айдаровы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Идеальный мир для Лекаря 7
7. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Хозяйка дома на холме
1. Хозяйка своей судьбы
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Жена проклятого некроманта
Фантастика:
фэнтези
6.60
рейтинг книги
Имя нам Легион. Том 9
9. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00