Выбрать главу

}

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

Main();

</script>

</job>

<!-- ***************  Поиск записей по фамилии ************** -->

<job id="FindName">

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

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

<script language="JScript">

//Поиск в XML-файле нужных записей и сохранение их в

//массиве PersonArr

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;