VBS — Работа с файлами при помощи FSO

Итак, теперь мы добрались до работы с файлами.

Как мы уже говорили, В VBS для работы с файловой системой существует FileSystemObject.

При помощи FSO можно работать с файлами. Алгоритм начала работы такой:

1. Объявляем переменную. Не обязательно такое же название, но оно наиболее логичное. А ещё, ваш код будет понятнее для других.

Dim FSO

2. Записываем в переменную FSO копию объекта FileSystemObject, который предназначен для работы с файловой системой Windows

Set FSO=CreateObject(«Scripting.FileSystemObject»)

Теперь, давайте ознакомимся с небольшим арсеналом методов:

FSO.GetBaseName(ПутьКФайлу) — Вернёт имя файла без расширения

FSO.GetExtensionName(ПутькФайлу) — Вернёт расширение файла

FSO.GetFileName(ПутьКФайлу) — Вернёт имя файла с расширением

FSO.GetParentFolderName(ПутьКФайлу) — Вернёт каталог, в котором находится файл

FSO.FileExists(ПутьКФайлу) — Проверяет, существует ли файл. Если да, то значение True.

FSO.GetTempName() — Возвращает случайное имя для временного файла

Для получения доступа к файлу необходимо выполнить fso.GetFile(ПутьКФайлу) в какую либо переменную. Например:

SET File=fso.GetFile(«C:\q1\q1.txt»)

Далее мы сможем выполнить для указанного файла следующее:

File.Copy(ПолныйПуть) — Копировать файл в указанное место. Путь необходимо указывать полный, с названием файла и его расширением.

Например: File.Copy(«C:\q1\new\q1.txt»)

Так же мы можем:

File.Move(ПолныйПуть) — Перемещаем файл

File.Delete — удаляем полученный файл. Указывать путь не надо

Но самое полезное — работа с текстовым файлом, так называемое  Text Stream.

TextStream

Итак, работа с текстом.

Не забываем, что в любом случае код наш начнётся с

Dim FSO

Set FSO=CreateObject(«Scripting.FileSystemObject»)

Теперь, давайте рассмотрим наши возможности:

1. Создание текстового файла

Set File=FSO.CreateTextFile(полный_путь_к_файлу)

2. Открытие текстового файла

Set txtfile = fso.OpenTextFile(«c:\test.txt»)

3. Чтобы добавлять в файл текст, нужно его открыть для записи

Set ts = fso.OpenTextFile(«c:\test.txt», ForWriting, True)

или

Set tfile = fso.GetFile(«c:\test1.txt»)

Set tf = tfile.OpenAsTextStream(ForWriting, True)

Теперь, давайте разберёмся, как записывать в файл текст. Для этого есть следующие методы:

Write — записывает символы в файл.
WriteLine — записывает строку в файл.
WriteBlankLines(число) — записывает пустые строки в файл.

Skip(число) — пропускает нужное число символов в строке.
SkipLine — пропускает строку.

Давайте приведём пример создания файла и записи в него текста.

ЗаписьВФайл

Как мы видим, строки 4, 5 и 6 запишут в одну строчку «Раз Два Три!». 7 строчка вставит 3 пустых строки, а 8 строчка кода добавит в файл строчку «Ёлочка гори!!» и перейдёт на след. строку. Ну и 9 строчка закроет файл.

Теперь поговорим про чтение из файла:

Read(число) — читает указанное количество символов из файла.
ReadLine — читает строку из файла.

ReadALL — читает всё содержимое

Skip(число) — пропускает нужное число символов в строке.
SkipLine — пропускает строку.

Приведём пример считывания текста из файла:

Считывание текста из файла

А так же есть не менее полезные вещи:

AtEndOfLine — Определяет достигнут ли конец строки(Boolean).
AtEndOfStream — Определяет достигнут ли конец файла(Boolean).
Column — номер текущего символа в строке.
Line — номер текущей строки.

Первые два метода можно использовать для условий того же Do While или Do Until. Например:

Do While Not File.AtEndOfLine

Последние два метода удобно использовать для контролирования процесса считывания, например чтобы при поиске какой либо информации в момент положительного результата знать, в какой же строчке мы нашли искомый текст и на каком символе. Это позволит минимизировать последующие затраты на заводимые переменные и на действия с ними.

ЗАДАЧИ

Задача1: Дан текстовый файл со списком литературы. Заменить определённые числа в нём и сохранить изменение.

Задача2: Создать текстовый файл, заполненный случайными символами. Вывести его содержимое.

Задача3: Дан текстовый файл, найти в нём какие-либо символы и вывести, в какой строке и на каком месте они стоят.

Задача4: Осуществить поиск директории и вывести процесс выполнения в новый текстовый файл, после чего вывести его содержимое.

1 thoughts on “VBS — Работа с файлами при помощи FSO

  1. Замечена одна интересная особенность. С помощью конструкции While Not TS.AtEndOfLine можно читать содержимое текстовика по строкам, но ежели будет обнаружена пустая строка, то на этом чтение файла закончиться.

Оставьте комментарий