Выбрать главу

   ss=LFillStr(13,File.Name)

   s1="("+DateToStr(d)+" ";

   s1+=TimeToStr(d)+")";

   ss+=LFillStr(20,s1);

   //Определяем текущую дату

   d=new Date();

   ss+=DateToStr(d);

   ss+=" "+TimeToStr(d);

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

   FLog.WriteLine(ss);

  }

  //Переходим к следующему файлу в коллекции

  Files.moveNext();

 }

}

//Функция для перемещения файлов

function MoveFiles() {

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

 var s,ss,Col,File;

 Col=0; //Счетчик количества перемещенных файлов

 WScript.Echo("");

 WScript.Echo("Перемещаем файлы ...");

 //Переходим к первому элементу коллекции файлов

 Files.moveFirst();

 //Цикл по всем файлам в коллекции

 while (!Files.atEnd()) {

  //Извлекаем текущий файл из коллекции

  File=Files.item();

  //Выделяем расширение файла

  s=FSO.GetExtensionName(File.Name);

  //Проверяем, совпадает ли расширение текущего файла

  //с расширением файлов для перемещения

  if (s==Mask) {

   //Выводим имя файла на экран

   WScript.Echo("  "+File.name);

   //Копируем файл в целевой каталог

   File.Copy(Dest);

   //Удаляем файл

   File.Delete();

   //Увеличиваем счетчик количества перемещенных файлов

   Col++;

  }

  //Переходим к следующему файлу в коллекции

  Files.moveNext();

 }

 //Выводим информацию о количестве перемещенных файлов

 WScript.Echo("");

 WScript.Echo("Перемещено файлов:",Col);

 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, содержащий информацию из записной книжки в следующем формате: