Андрей Попов - Windows Script Host для Windows 2000/XP
Открыть текстовый файл для чтения можно также с помощью метода OpenTextFile объекта FileSystemObject.
В листинге 5.13 приведен сценарий WriteTextFile.js, иллюстрирующий использование метода OpenAsTextStream для записи строки в файл и чтения из него.
Листинг 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:nn",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:
//Создаем объект FileSystemObject
var FSOWScript.CreateObject("Scripting. FileSystemObject");
//Создаем текстовый файл
var F=FSO.CreateTextFile("C:\TestFile.txt", true);
//Записываем строку в файл
F.WriteLine("Строка текста");
//Закрываем файл
F.Close();
Свойству объекта TextStream описаны в табл. 5.12.
Таблица 5.12. Свойства объекта TextStream
Свойство Описание AtEndOfLine Содержит true, если указатель достиг конца строки в файле, и false в противном случае. Доступно только для чтения AtEndOfStream Содержит true, если указатель достиг конца файла, и false в противном случае. Доступно только для чтения Column Содержит номер колонки текущего символа в текстовом файле. Доступно только для чтения Line Содержит номер текущей строки в текстовом файле. Доступно только для чтенияМетоды объекта TextStream представлены в табл. 5.13.