'Выводим диалоговое окно со строкой ввода

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

 }

}

//Сортировка массива и вывод его содержимого в выходной файл

function ListPersonArray() {

 var i;

 //Сортировка массива по фамилии

 PersonArr.sort(SortLastName);

 //Цикл по всем элементам массива PersonArr

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

  //Запись информации в выходной файл

  PrintPerson(PersonArr[i]);

 }

}

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

function SortLastName(Pers1,Pers2) {

 if (Pers1.LastName<Pers2.LastName) return -1;

 else if (Pers1.LastName==Pers2.LastName) return 0;

 else return 1;

}

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

function Main() {

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

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

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

 InitPath();

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

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

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

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

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

 TopReport('Список всех записей, сортировка по фамилии');

 //Считываем данные из файла в массив

 FileToArray();

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

 ListPersonArray();

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

 BottomReport('Всего записей: '+PersonArr.length);

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

 MakeOut();

}

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

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;

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату