else return 1;
}
Сортировать массивы подобным образом можно только в сценариях JScript, где массивы рассматриваются как объекты. В сценариях VBScript отсутствуют встроенные средства для сортировки массивов
После сортировки массива содержимое его элементов в цикле выводится в файл out.txt с помощью функции PrintPerson(PersRec)
:
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++;
}
В листинге 5.21 приводится полный текст сценария SortName.js.
/*******************************************************************/
/* Имя: SortName.js */
/* Язык: JScript */
/* Описание: Записная книжка (данные в текстовом файле book.txt). */
/* Вывод всех записей с сортировкой по фамилии */
/*******************************************************************/
//Объявляем переменные
var
WshShell,FSO,
BasePath, //Путь к текущему каталогу
PathBook, //Путь к файлу с данными
PathOut, //Путь к выходному файлу
FBook, //Файл с данными
FOut, //Выходной файл
NomRec=0, //Счетчик количества записей
PersonRec, //Объект для хранения данных об одном человеке
PersonArr; //Массив для хранения объектов PersonRec
//Инициализируем константы для работы с файлами
var
ForReading=1,
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; //Примечание
}
//Заполнение нового элемента массива
function PersonToArray(sArr) {
//Создаем новый объект Person
PersonRec=new Person(sArr[0], sArr[1], sArr[2], sArr[3], sArr[4], sArr[5], sArr[6]);
//Сохраняем объект Person в массиве
PersonArr[PersonArr.length]=PersonRec;
}
//Создание массива объектов Person
function FileToArray() {
var s,ss;
//Открываем файл с данными для чтения
FBook=FSO.OpenTextFile(PathBook,ForReading,true);
//Создаем массив PersonArr
PersonArr=new Array();
//Читаем содержимое файла FBook
while (!FBook.AtEndOfStream) {
//Считываем строку
s=FBook.ReadLine();
//Записываем содержимое строки s в массив ss
ss = s.split('|');
//Добавляем новый элемент в массив объектов Person
PersonToArray(ss);
}
//Закрываем файл
FBook.Close();
}
//Запись в выходной файл итоговой информации
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);