Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Программное обеспечение » Windows Script Host для Windows 2000/XP - Андрей Попов

Windows Script Host для Windows 2000/XP - Андрей Попов

Читать онлайн Windows Script Host для Windows 2000/XP - Андрей Попов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 84 85 86 87 88 89 90 91 92 ... 175
Перейти на страницу:

 ForWriting=2; //Константа для создания выходного файла

//Конструктор объекта Person

function Person(LastName,Name,Phone,Street,House,App,Note) {

 this.LastName=LastName; //Фамилия

В this.Name=Name;В В В В В В В В  //РРјСЏ

 this.Phone=Phone;       //Телефон

 this.Street=Street;     //Улица

 this.House=House;       //Дом

 this.App=App;           //Квартира

 this.Note=Note;         //Примечание

}

//Определение значения тега tgName XML-элемента obj

function GetTagVal(obj, tgName) {

 //Возвращаем значение тега tgName

В return obj.Children.Item(tgName,0).Text;

}

//Заполнение нового элемента массива

function PersonToArray(XItem) {

 //Создаем новый экземпляр PersonRec объекта Person

В PersonRec=new Person();

 //Заполняем поля объекта PersonRec

В PersonRec.LastName=GetTagVal(XItem,"LastName");

В PersonRec.Name=GetTagVal(XItem,"Name");

В PersonRec.Phone=GetTagVal(XItem,"Phone");

В PersonRec.Street=GetTagVal(XItem,"Street");

В PersonRec.House=GetTagVal(XItem,"House");

В PersonRec.App=GetTagVal(XItem,"App");

В PersonRec.Note=GetTagVal(XItem,"Note");

 //Сохраняем объект PersonRec в массиве

В PersonArr[PersonArr.length]=PersonRec;

}

//Создание массива объектов Person

function FileToArray() {

var

В XML,NomRec,XItem,ex;

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

В PersonArr=new Array();В 

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

В XML=WScript.CreateObject("MSXML");

 //Задаем путь к файлу с данными

В XML.url=PathBook;

В //Рнициализируем счетчик числа элементов Person

 //в XML-файле

В NomRec=0;

В try {

  //Определяем число элементов Person в XML-файле

В  NomRec=XML.root.children.item("Person").length;

В  if (typeof(NomRec)=="undefined") NomRec=1;

В } catch (ex) {

В  NomRec=0;

В }

 //Перебираем коллекцию XML-элементов Person

В for (i=0;i<NomRec;i++) {

  //Выделяем в коллекции XML-элементов i-й элемент Person

В  XItem=XML.root.children.item("Person",i);

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

В  PersonToArray(XItem);

В }

}

//Запись в выходной файл заголовка отчета

function TopReport(Mess) {

В FOut.WriteLine(Mess);

В FOut.WriteLine("--------------------");

В FOut.WriteLine("");

}

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

function BottomReport() {

 FOut.WriteLine("Всего записей: "+NomRec);

}

//Запись данных из объекта Person в выходной файл

function PrintPerson(PersRec) {

 FOut.WriteLine("Фамилия: "+PersRec.LastName);

В FOut.WriteLine("РРјСЏ: "+PersRec.Name);

 FOut.WriteLine("Телефон: "+PersRec.Phone);

 FOut.WriteLine("Улица: "+PersRec.Street);

 FOut.WriteLine("Дом: "+PersRec.House);

В FOut.WriteLine("РљРІ.: "+PersRec.App);

 FOut.WriteLine("Заметки: "+PersRec.Note);

В FOut.WriteLine("*********************************");

В NomRec++;

}

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

function ListPersonArray() {

var i,a;

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

В 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 ListFile() {

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

В FileToArray();

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

В ListPersonArray();

}

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

function MakeOut() {

 //Закрываем выходной файл

В FOut.Close();

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

В WshShell.Run("notepad "+PathOut,1);

}

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

function InitPath() {

В BasePath=WshShell.CurrentDirectory+"\";

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

В PathBook=BasePath+"book.xml",

 //Путь к выходному файлу

В PathOut=BasePath+"out.txt";

}

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

function Main() {

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

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

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

В InitPath();

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

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

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

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

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

 TopReport("Сортировка по фамилии");

 //Выводим содержимого файла с данными

В ListFile();

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

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

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

В MakeOut();

}

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

Main();

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

Рспользование XML DOM для просмотра Рё изменения РҐРњL-файла

Объектная модель XML DOM (XML Document Object Model, объектная модель документа XML) является рекомендованным корпорацией W3C стандартом, который определяет интерфейсы, с помощью которых приложения могут загружать XML-файл, просматривать его содержимое, производить поиск, добавление, изменение и удаление данных, сохранять сделанные изменения в файле. Отметим, что в модели XML DOM документ в формате XML рассматривается как иерархическое дерево, которое состоит из элементов, называемых узлами (nodes), и имеет один корневой элемент (узел).

Замечание

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

Описание модели XML DOM

Парсер MSXML поддерживает много объектов, определяемых в модели XML DOM, с помощью которых можно решать связанные с XML задачи различного уровня сложности. Нам в дальнейшем для написания сценариев, которые осуществляют просмотр записной книжки в XML-формате, а также поиск, добавление и удаление записей из этой книжки, понадобятся только три основных объекта: DOMDocument (представляет XML-документ в целом), XMLDOMNode (представляет одиночный XML-элемент, т. е. один узел в дереве) и XMLDOMNodeList (коллекция элементов, являющихся дочерними по отношению к определенному узлу в дереве, доступ к которым возможен по порядковому номеру при помощи метода item()).

1 ... 84 85 86 87 88 89 90 91 92 ... 175
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Windows Script Host для Windows 2000/XP - Андрей Попов.
Комментарии