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

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

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

 WScript.Echo("Нажмите Enter...");

 WScript.StdIn.ReadLine;

}

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

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

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

//Проверяем наличие каталога-источника

if (!FSO.FolderExists(Source)) {

 //Выводим
сообщение об отсутствии каталога-источника

 WScript.Echo("Каталог-источник",Source,"не существует.");

 WScript.Echo("Нажмите Enter...");

 WScript.StdIn.ReadLine;

 //Выходим из сценария

 WScript.Quit;

}

//Проверяем наличие целевого каталога

if (!FSO.FolderExists(Dest)) {

 //Выводим сообщение об отсутствии целевого каталога

 WScript.Echo("Целевой каталог",Dest,"не существует.");

 WScript.StdIn.ReadLine;

 WScript.StdIn.ReadLine;

 //Выходим из сценария

 WScript.Quit;

}

//Создаем объект Folder для каталога-источника

Fold=FSO.GetFolder(Source);

//Создаем объект Enumerator для доступа к коллекцию файлов

//в каталоге-источнике

Files=new Enumerator(Fold.Files);

//Записываем информацию в log-файл

WriteLog;

//Перемещаем файлы в целевой каталог

MoveFiles;

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

// Вспомогательные функции

//Дополнение строки ss ведущими нулями до длины ll

function LeadZero(ll,ss) {

 var i,s,l1;

 s=ss.toString;

 l1=s.length;

 if (l1<=ll) {

for (i=1;i<=ll-l1;i++) s="0"+s;

 }

 return(s);

}

//Формирование из объекта Date строки формата ДД/ММ/ГГГГ

function DateToStr(dd) {

 var s;

 s=LeadZero(2,dd.getDate)+"/";

 s+=LeadZero(2,dd.getMonth+1)+"/";

 s+=dd.getYear;

 return(s);

}

//Формирование из объекта Date
строки формата ЧЧ:ММ

function TimeToStr(dd) {

 var s;

 s=LeadZero(2,dd.getHours)+":"+LeadZero(2,dd.getMinutes);

 return(s);

}

//Выравнивание строки s влево в поле длиной l символов

function LFillStr(l,s) {

 var ss,i,ll;

 ll=l-s.length;

 if (s.length>=l) {

return(s);

 } else {

ss=s;

for (i=1;i<=ll;i++) {

ss=ss+" ";

}

return(ss);

 }

}

Разработка записной книжки в формате текстового файла

Последний пример, который мы рассмотрим в этой главе, посвящен обработке данных, хранящихся в текстовом файле с разделителями (это может быть, например, выборка из электронной таблицы, базы данных и т.п.).

Предположим, что имеется файл book.txt, содержащий информацию из записной книжки в следующем формате:

Фамилия|Имя|Телефон|Улица|Дом|Кв.|Примечание

В качестве примера мы будем рассматривать файл book.txt, приведенный в листинге 5.20.

Листинг 5.20. Содержимое файла book.txt

Потапов|Сергей|55-55-55|Моховая|3|10|Без примечаний

Попов|Андрей|56-56-56|Ленина|3|5|Без примечаний

Иванов|Иван|17-17-17|Садовая|4|6|Очень хороший человек

Казаков|Сергей|24-19-68|Полежаева|101|22|Тоже очень хороший человек

Ниже приведен сценарий SortName.js, который реализует одну из функций для работы с записной книжкой — в результате работы этого сценария все записи из book.txt сортируются по фамилии и отображаются в Блокноте (рис. 5.14).

Опишем кратко алгоритм работы сценария SortName.js.

1. Информация из файла book.txt считывается в массив

PersonArr
. Каждый элемент массива является объектом типа
Person
, в котором хранятся все данные для одного человека.

2. Массив

PersonArr
сортируется в нужном порядке (в нашем случае — по возрастанию фамилий).

3. Содержимое всех записей из массива

PersonArr
выводится в текстовый файл out.txt.

4. Файл out.txt открывается в Блокноте.

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

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

#Бояръ-Аниме. Газлайтер. Том 13

Володин Григорий Григорьевич
13. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
фэнтези
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 13

Чужое наследие

Кораблев Родион
3. Другая сторона
Фантастика:
боевая фантастика
8.47
рейтинг книги
Чужое наследие

Учитель из прошлого тысячелетия

Еслер Андрей
6. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Учитель из прошлого тысячелетия

Последний Герой. Том 2

Дамиров Рафаэль
2. Последний герой
Фантастика:
попаданцы
альтернативная история
4.50
рейтинг книги
Последний Герой. Том 2

Личный аптекарь императора. Том 4

Карелин Сергей Витальевич
4. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Личный аптекарь императора. Том 4

Неучтенный элемент. Том 2

NikL
2. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 2

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

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

Дважды одаренный. Том VI

Тарс Элиан
6. Дважды одаренный
Фантастика:
аниме
альтернативная история
фэнтези
фантастика: прочее
5.00
рейтинг книги
Дважды одаренный. Том VI

Лекарь Империи 4

Карелин Сергей Витальевич
4. Лекарь Империи
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Лекарь Империи 4

Источник

Билик Дмитрий Александрович
11. Бедовый
Фантастика:
юмористическое фэнтези
городское фэнтези
мистика
7.00
рейтинг книги
Источник

Частный сыщик

Кренц Джейн Энн
Любовные романы:
остросюжетные любовные романы
8.00
рейтинг книги
Частный сыщик

Второгодка. Книга 5. Презренный металл

Ромов Дмитрий
5. Второгодка
Фантастика:
городское фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Второгодка. Книга 5. Презренный металл

Кодекс Крови. Книга ХI

Борзых М.
11. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХI

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

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