Объект FileSystemObject метод OpenTextFile — Как открыть текстовый файл

Объект FileSystemObject метод OpenTextFile — Как открыть текстовый файл Объектная модель Windows Script Host

Всем привет, с вами снова сайт scriptcoding.ru. Продолжая изучать объект FileSystemObject, мы рассмотрим метод OpenTextFile, который показывает, как открыть текстовый файл программным путем.

Прежде всего, стоит определиться, как открыть текстовый файл средствами операционной системы Windows. Дело в том, что файлы, как правило, делятся на два типа: текстовые и двоичные. Двоичные – в большинстве случаев это исполняемые файлы с расширение exe, bat и так далее. Для текстовых документов актуальным являются такие моменты как кодировка, перевод строки и так далее. Если брать простой текстовый документ с расширением txt, то его можно открыть простым редактором Блокнот, а вот для корректного отображения документа с расширением doc, нужно как минимум приложение Microsoft Word. В общем, все зависит от расширения текстового файла, хотя для простоты дела, вы можете выбрать документ в менеджере Total Commander и нажать клавишу F3.

Как открыть текстовый файл

Хорошо, теперь вернемся к методу, который показывает, как открыть заданный текстовый файл. Метод fso OpenTextFile является переходным звеном, так как он позволяет получить доступ к текстовому файлу (возможность считывания данных и открытие документа). Давайте рассмотрим параметры метода OpenTextFile FSO объекта:

OpenTextFile(filename [,iomode [,create [,format]]]) – После вызова метода, он автоматически предоставляет доступ к объекту Textstream. Давайте рассмотрим описание параметров:

  • filename – собственно, путь к текстовому файлу. В принципе, мы можем задать путь к любому файлу.
  • iomode – отвечает за режим доступа, например, ForReading — только чтение (1), ForWriting — для записи (2), ForAppending — для добавления (8).
  • Create — параметр определяет, что делать, если файл с подобным именем не существует (параметр filename): true – документ создастся, false – документ создаваться не будет.
  • format – задает кодировку: TristateUseDefault – формат системы по умолчанию (-2), TristateTrue — формат Unicode (-1), TristateFalse – формат ASCII (0).

Хорошо, теперь давайте приступим к программированию, а именно, рассмотрим, как можно открыть текстовый файл программным путем. Мы рассмотрим два примера, один на языке VBScript, а другой на языке Jscript. Начнем с языка программирования vbscript:

как программно открыть текстовый файл
' ----------------------------------------------------------' Объект FileSystemObject метод OpenTextFile' Как открыть текстовый файл' OpenTextFile.vbs' ---------------------------------------------------------- OptionExplicit dim FSO, WshShell, Folder, Files, Folders, TempPath, TxtFiledim cur_dir, list, i, j, result, t_file, data_file Set FSO = CreateObject("Scripting.FileSystemObject"' формируем ссылку на объектset WshShell = WScript.CreateObject("WScript.Shell"' текущий каталогcur_dir = WshShell.CurrentDirectory list = "Содержимое текущей папки:" & vbCrLf & vbCrLf 'Создаем объект Folder для для текущей папкиset Folder=FSO.GetFolder(cur_dir) 'Создаем коллекцию файловset Files=Folder.Files 'Создаем коллекцию каталоговset Folders=Folder.SubFolders list = list & "Список файлов:" & vbCrLf & vbCrLf ' начинаем перебор коллекции файлов                                                                                                                                                                                                                                                                                как открывать текстовые файлыForEach i In Files    ' формируем список файлов    list = list & i.Name & vbCrLf     Open_Text_File(i.Path) Next list = list & vbCrLf & "Список катлогов:" & vbCrLf & vbCrLf ' начинаем перебор коллекции папокForEach j In Folders    ' формируем список каталогов    list = list & j.Name & vbCrLfNext ShowInNotepad(list) 'Процедура открытия текстового файлаSub Open_Text_File(file_path)    result = MsgBox("Хотите открыть документ " & file_path, vbOkCancel + vbInformation, "Открытие файла")    If result = vbOK Then        set t_file=fso.OpenTextFile(file_path, 1, false)        data_file = t_file.ReadAll        t_file.Close()        ShowInNotepad(data_file)    EndIfEndSub 'Процедура создания временного файла с даннымиSub ShowInNotepad(StrToFile)    TempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%") & "" & FSO.GetTempName    Set TxtFile = FSO.CreateTextFile(TempPath)    TxtFile.WriteLine(StrToFile)    TxtFile.Close    CreateObject("WScript.Shell").Run "wordpad.exe " & TempPathEndSub

Давайте начнем с конца, видим, что мы создали две процедуры:

Open_Text_File – в качестве параметра принимает строковое значение, путь к документу, который нужно открыть. В самой процедуре мы выводим диалоговое окно с помощью функции MsgBox, если пользователь нажмет на ОК, то произойдет вызов метода OpenTextFile (fso.OpenTextFile), считывание содержимого документа (ReadAll), закрытие документа и вызов процедуры ShowInNotepad. Как открывать текстовый файл.

Скачать архив с примерами

ShowInNotepad – процедура принимает один параметр – данные, которые нужно записать. Сначала создается временный текстовый файл, его расширение будет tmp, в него будут записаны данные параметра. В конце происходит вызов метода Run объект WScript.Shell, который произведет открытие временного файла с помощью программы wordpad.exe, вы вправе изменить текстовый редактор на любой другой.

как можно открыть текстовый файл

А вот аналогичный пример на языке Jscript:

// ----------------------------------------------------------// Объект FileSystemObject метод OpenTextFile// Как открыть текстовый файл// OpenTextFile.js// ---------------------------------------------------------- var FSO, WshShell, Folder, Files, Folders, TempPath, TxtFile;var cur_dir, list ="Содержимое текущей папки:nn"; FSO = WScript.CreateObject("Scripting.FileSystemObject"); // формируем ссылку на объектWshShell = WScript.CreateObject("WScript.Shell"); // текущий каталогcur_dir = WshShell.CurrentDirectory; //Создаем объект Folder для для текущей папкиFolder=FSO.GetFolder(cur_dir); //Создаем коллекцию файловFiles=new Enumerator(Folder.Files); //Создаем коллекцию каталоговFolders=new Enumerator(Folder.SubFolders); list +="Список файлов:nn"; // начинаем перебор коллекции файловfor(;!Files.atEnd(); Files.moveNext()){     list+=Files.item().Name+"n";       Open_Text_File(Files.item().Path)} list +="nСписок катлогов:nn"; // начинаем перебор коллекции папок                                                                                                                                                                                                            как открывать текстовые файлыfor(;!Folders.atEnd(); Folders.moveNext()){     list+=Folders.item().Name+"n";} ShowInNotepad(list); //Функция открытия текстового файлаfunction Open_Text_File(file_path){ var Msg ="Хотите открыть документ "+ file_path;var Titl ="Открытие файла"; var result, t_file, data_file; var vbOKCancel =1;var vbOK =1;var vbInformation =64;     result = WshShell.Popup(Msg,0, Titl, vbOKCancel + vbInformation);    if(result == vbOK){         t_file=FSO.OpenTextFile(file_path,1,false);        data_file = t_file.ReadAll();        t_file.Close();        ShowInNotepad(data_file);    }} //Функция создания временного файла с даннымиfunction ShowInNotepad(StrToFile){    TempPath = WScript.CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%")+"\"+ FSO.GetTempName();    TxtFile = FSO.CreateTextFile(TempPath);    TxtFile.WriteLine(StrToFile);    TxtFile.Close();    WScript.CreateObject("WScript.Shell").Run("wordpad.exe "+ TempPath);}

И так, мы рассмотрели метод OpenTextFile объекта FileSystemObject, который показывает как открыть текстовый файл. Если у вас возникли вопросы по сценарию, пишите в комментариях, буду рад ответить.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий