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

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

Жанры

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-файла, который в нашем случае будет реализовывать несколько функций для работы с записной книжкой.

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

Вечный. Книга VII

Рокотов Алексей
7. Вечный
Фантастика:
боевая фантастика
рпг
попаданцы
5.00
рейтинг книги
Вечный. Книга VII

Вернувшийся: Посол. Том IV

Vector
4. Вернувшийся
Фантастика:
космическая фантастика
киберпанк
5.00
рейтинг книги
Вернувшийся: Посол. Том IV

Чиновникъ Особых поручений

Кулаков Алексей Иванович
6. Александр Агренев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чиновникъ Особых поручений

Целеполагание

Владимиров Денис
4. Глэрд
Фантастика:
фэнтези
боевая фантастика
рпг
5.00
рейтинг книги
Целеполагание

Путь Скорби

Распопов Дмитрий Викторович
2. 30 сребреников
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
5.00
рейтинг книги
Путь Скорби

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

Кодекс Охотника. Книга XXIV

Винокуров Юрий
24. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXIV

Тринадцатый VIII

NikL
8. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый VIII

Второгодка. Книга 4. Подавать холодным

Ромов Дмитрий
4. Второгодка
Фантастика:
героическая фантастика
альтернативная история
сказочная фантастика
5.00
рейтинг книги
Второгодка. Книга 4. Подавать холодным

Древесный маг Орловского княжества 6

Павлов Игорь Васильевич
6. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 6

Предопределение

Осадчук Алексей Витальевич
9. Последняя жизнь
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Предопределение

На границе империй. Том 9. Часть 3

INDIGO
16. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 3

Газлайтер. Том 6

Володин Григорий
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 6

Пустоши

Сай Ярослав
1. Медорфенов
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Пустоши