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

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

Описание: Записная книжка (данные в XML-файле book.xml).

Поиск и удаление элементов из XML-файла

</description>

</runtime>

<script language="VBScript">

 'Функция возвращает фамилию для удаления

 Function InputName

 'Вводим фамилию в диалоговом окне

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

 End Function

</script>

<script language="JScript">

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

var

 WshShell,

 LastName, //Удаляемая фамилия

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

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

 XMLDoc, //XML-файл с данными

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

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

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

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

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

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

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

function FindAndDelRecord {

 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,

"Работа с XML-файлом",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,

"Работа с XML-файлом",vbInformation+vbOkOnly);

}

//Сохраняем содержимое XML-файла на диске

XMLDoc.save(PathBook);

 }

}

//Построение путей к файлам

function InitPath {

 BasePath=WshShell.CurrentDirectory+"\\";

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

 PathBook=BasePath+"book.xml";

}

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

function Main {

 var Res;

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

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

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

 InitPath;

 LastName=InputName;

 //Запрос на удаление записи

 Res=WshShell.Popup("Удалить фамилию "+LastName+

" из \n"+PathBook+"?",0,

"Работа с XML-файлом",vbQuestion+vbYesNo);

 if (Res==vbYes) { //Нажата кнопка Да

//Ищем в книжке нужную фамилию и удаляем относящуюся к

//ней запись

FindAndDelRecord;

 }

}

/******************* Начало **********************************/

Main;

/************* Конец *********************************************/

</script>

</job>

Глава 7

Способы организации диалогового режима работы сценариев 

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

Во-первых, мы еще раз подробно остановимся на том, как можно использовать параметры командной строки для запуска различных заданий из многозадачного WS-файла, который в нашем случае будет реализовывать несколько функций для работы с записной книжкой.

Поделиться:
Популярные книги

Сама себе хозяйка

Красовская Марианна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Сама себе хозяйка

Сердце Дракона. Том 11

Клеванский Кирилл Сергеевич
11. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
6.50
рейтинг книги
Сердце Дракона. Том 11

Первый среди равных. Книга IV

Бор Жорж
4. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга IV

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Мастер Разума IV

Кронос Александр
4. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума IV

Авиатор: назад в СССР

Дорин Михаил
1. Авиатор
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Авиатор: назад в СССР

Кадры решают все

Злотников Роман Валерьевич
2. Элита элит
Фантастика:
боевая фантастика
попаданцы
альтернативная история
8.09
рейтинг книги
Кадры решают все

Плеяда

Суконкин Алексей
Проза:
военная проза
русская классическая проза
5.00
рейтинг книги
Плеяда

Потусторонний. Книга 2

Погуляй Юрий Александрович
2. Господин Артемьев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Потусторонний. Книга 2

Ученик. Книга 4

Первухин Андрей Евгеньевич
4. Ученик
Фантастика:
фэнтези
5.67
рейтинг книги
Ученик. Книга 4

Законник Российской Империи. Том 3

Ткачев Андрей Юрьевич
3. Словом и делом
Фантастика:
городское фэнтези
альтернативная история
аниме
дорама
5.00
рейтинг книги
Законник Российской Империи. Том 3

Ваше Сиятельство 7

Моури Эрли
7. Ваше Сиятельство
Фантастика:
боевая фантастика
аниме
5.00
рейтинг книги
Ваше Сиятельство 7

Война

Валериев Игорь
7. Ермак
Фантастика:
боевая фантастика
альтернативная история
5.25
рейтинг книги
Война

Младший сын князя. Том 4

Ткачев Андрей Юрьевич
4. Аналитик
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Младший сын князя. Том 4