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

ЖАНРЫ

Windows Script Host для Windows 2000/XP

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

Шрифт:

function RecordsToArray(LastName) {

 var XMLDoc,Root,sSelect,i,Parent,NodeList;

 //Создаем массив PersonArr

 PersonArr=new Array;

 //Создаем объект DOMDocument

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

 //Загружаем XML-файл

 XMLDoc.load(PathBook);

 //Сохраняем в переменной Root ссылку на корневой элемент

 //документа

 Root=XMLDoc.documentElement;

 //Формируем
строку для поиска фамилии

 sSelect="Person/LastName[text='"+LastName+"']";

 //Создаем коллекцию NodeList всех элементов LastName,

 //значение которых совпадает со значением переменной LastName

 NodeList=XMLDoc.documentElement.selectNodes(sSelect);

 if (NodeList.length==0) {//Коллекция NodeList пуста

//Выводим диалоговое окно с сообщением

WshShell.Popup("Фамилия "+ LastName+ " не найдена!", 0,

"Записная книжка",vbInformation+vbOkOnly);

//Завершаем выполнение задания

WScript.Quit;

 } else { //Требуемая фамилия найдена

//Цикл по всем найденным элементам LastName

for (i=0;i<=NodeList.length-1;i++) {

//Определяем родительский элемент (Person) для найденного

//элемента LastName

Parent=NodeList.item(i).parentNode;

//Добавляем новый элемент в массив объектов Person

PersonToArray(Parent);

}

 }

}

//Вывод в выходной файл информации о найденных записях

function PrintAllFind {

 var i;

 for (i=0;i<PersonArr.length;i++) {

PrintPerson(PersonArr[i]);

 }

}

//Основная запускная функция

function Main {

var LastName;

 //Создаем объект WshShell

 WshShell = WScript.CreateObject("WScript.Shell");

 //Определяем пути к файлам

 InitPath;

 //Создаем объект FileSystemObject

 FSO=WScript.CreateObject("Scripting.FileSystemObject");

 //Открываем выходной файл для записи

 FOut=FSO.OpenTextFile(PathOut,ForWriting,true);

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

 TopReport("Поиск записей");

 //Вводим фамилию для поиска

 LastName=WSHInputBox("Введите фамилию для поиска:","Записная книжка")

 //Ищем в XML-файле нужные записи
и сохраняем их в массиве PersonArr

 RecordsToArray(LastName);

 //Выводим все найденные записи из массива PersonArr в выходной файл

 PrintAllFind(LastName);

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

 BottomReport("Всего найдено: "+PersonArr.length);

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

 MakeOut;

}

//Запускаем основную функцию

Main;

</script>

</job>

<!-- *************** Удаление записи по фамилии *************** -->

<job id="DelRec">

<script language="VBScript" src="WSHInputBox.vbs"/>

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

<script language="JScript">

//Поиск фамилии в записной книжке и удаление всех

//реквизитов, относящихся к этой фамилии

function FindAndDelRecord(LastName) {

 var Root,sSelect,i,Parent,NodeList;

 //Создаем объект DOMDocument

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

 //Загружаем XML-файл

 XMLDoc.load(PathBook);

 //Сохраняем в переменной Root ссылку на корневой элемент

 //документа

 Root=XMLDoc.documentElement;

 //Формируем строку для поиска фамилии

 sSelect="Person/LastName[text='"+LastName+"']";

 //Создаем коллекцию NodeList всех элементов LastName,

 //значение которых совпадает со значением переменной LastName

 NodeList=XMLDoc.documentElement.selectNodes(sSelect);

 if (NodeList.length==0) //Коллекция NodeList пуста

//Выводим диалоговое окно с сообщением

WshShell.Popup("Фамилия "+LastName+ " не найдена!", 0,

"Записная книжка",vbInformation+vbOkOnly);

 else { //Требуемая фамилия найдена

//Цикл по всем найденным элементам LastName

for (i=0;i<=NodeList.length-1;i++) {

//Определяем родительский элемент (Person) для найденного

//элемента LastName

Parent=NodeList.item(i).parentNode;

//Удаляем элемент Person вместе со всеми его дочерними элементами

Root.removeChild(Parent);

//Выводим диалоговое окно с сообщением

WshShell.Popup("Запись удалена!",0,

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