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

ЖАНРЫ

Windows Script Host для Windows 2000/XP

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

Шрифт:

 <job id="AddRec">

 </job>

</package>

Некоторые функции (например, настройка пути к XML-файлу) должны присутствовать во всех заданиях, поэтому такие общие функции мы вынесем в отдельный файл Usage.js, который будет подключаться в каждом из заданий следующим образом:

<script language="JScript" src="Usage.js"/>

В файл Usage.js помещены следующие функции:

конструктор объекта

Person
(одна запись из книжки);

функция

GetTagVal(obj, tgName)
,
которая возвращает значения тега
tgName
XML-элемента
obj
;

функция

PersonToArray(XNode)
, которая заполняет поля экземпляра
PersonRec
объекта
Person
данными из соответствующих XML-элементов и добавляет сформированную запись в массив
PersonArr
;

функции

TopReport(Mess)
и
BottomReport(Mess)
, с помощью которых в выходной файл печатается заголовок отчета и итоговая информация соответственно;

функция

PrintPerson(PersRec)
, в которой происходит вывод данных из полей объекта
PersonRec
в выходной файл;

функция

MakeOut
, которая обеспечивает запуск Блокнота и открывает в нем выходной файл;

функция InitPath, в которой строятся пути к XML-файлу, содержащему данные, и выходному файлу.

Usage.js объявляются глобальные переменные и константы. Полностью содержимое файла Usage.js приведено в листинге 7.2.

Листинг 7.2. Общие функции для работы с записной книжкой

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

/* Имя: Usage.js */

/* Язык: JScript */

/* Описание: Общие функции для записной книжки */

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

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

var

 WshShell,FSO,

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

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

 PathOut, //Путь к выходному файлу

 FBook, //Файл с данными

 FOut, //Выходной файл

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

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

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

 ForWriting=2; //Константа для создания выходного файла

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

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

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

function Person(LastName,Name,Phone,Street,House,App,Note) {

 this.LastName=LastName; //Фамилия

 this.Name=Name; //Имя

 this.Phone=Phone; //Телефон

 this.Street=Street; //Улица

 this.House=House; //Дом

 this.App=App; //Квартира

 this.Note=Note; //Примечание

}

//Определение
значения тега tgName XML-элемента obj

function GetTagVal(obj, tgName) {

 var ElemList;

 //Создаем коллекцию дочерних для obj элементов, которые

 //задаются тегом tgName

 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);

Поделиться с друзьями: