Выбрать главу
Листинг 5.13. Запись информации в текстовый файл и чтение ее из него

/*******************************************************************/

/* Имя: WriteTextFile.js                                           */

/* Язык: JScript                                                   */

/* Описание: Запись строк в текстовый файл и чтение из него        */

/*******************************************************************/

var FSO,F,TextStream,s;  //Объявляем переменные

//Инициализируем константы

var ForReading = 1, ForWriting = 2, TristateUseDefault = -2;

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

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

//Создаем в текущем каталоге файл test1.txt

FSO.CreateTextFile("test1.txt");

//Создаем объект File для файла test1.txt

F=FSO.GetFile("test1.txt");

//Создаем объект TextStream (файл открывается для записи)

TextStream=F.OpenAsTextStream(ForWriting, TristateUseDefault);

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

TextStream.WriteLine("Это первая строка");

//Закрываем файл

TextStream.Close();

//Открываем файл для чтения

TextStream=F.OpenAsTextStream(ForReading, TristateUseDefault);

//Считываем строку из файла

s=TextStream.ReadLine();

//Закрываем файл

TextStream.Close();

//Отображаем строку на экране

WScript.Echo("Первая строка из файла test1.txt:\n\n",s);

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

Коллекция Files

Коллекция Files содержит объекты File для всех файлов, находящихся внутри определенного каталога. Создается эта коллекция с помощью свойства Files соответствующего объекта Folder. Например, в следующем примере переменная Files является коллекцией, содержащей объекты File для всех файлов в каталоге С:\Мои документы:

var FSO, F, Files;

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

F=FSO.GetFolder("С:\\Мои документы");

Files=F.Files;

Как и рассмотренные выше коллекции Drives и Folders, коллекция Files имеет свойство Count и метод Item.

Для доступа в цикле ко всем элементам коллекции Files применяется объект Enumerator. В качестве примера использования этого объекта в листинге 5.14 приведен сценарий ListFiles.js, выводящий на экран названия всех файлов, которые содержатся в специальной папке "Мои документы" (рис. 5.6). 

Рис. 5.6. Список всех файлов в специальной папке "Мои документы"

Листинг 5.14. Построение списка файлов

/*******************************************************************/

/* Имя: ListFiles.js                                               */

/* Язык: JScript                                                   */

/* Описание: Получение списка всех файлов заданного каталога       */

/*******************************************************************/

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

var FSO,F,Files,WshShell,PathList,s;

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

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

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

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

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

WshFldrs=WshShell.SpecialFolders;

//Определяем путь к папке "Мои документы"

PathList=WshFldrs.item("MyDocuments")+"\\";

//Создаем объект Folder для папки "Мои документы"

F=FSO.GetFolder(PathList);

//Создаем коллекцию файлов каталога "Мои документы"

Files=new Enumerator(F.Files);

s = "Файлы из каталога "+PathList+"\n";

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

for (; !Files.atEnd(); Files.moveNext())

 //Добавляем строку с именем файла

 s+=Files.item().Name+"\n";

//Выводим полученные строки на экран

WScript.Echo(s);

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

Объект TextStream

Объект TextStream обеспечивает последовательный (строка за строкой) доступ к текстовому файлу. Методы этого объекта позволяют читать информацию из файла и записывать ее в него.

Создать объект TextStream можно с помощью следующих методов:

CreateTextFile объектов FileSystemObject и Folder;

OpenTextFile объекта FileSystemObject;

OpenAsTextStream объекта File.

В следующем примере переменная F является объектом TextStream и используется для записи строки текста в файл C:\TestFile.txt: