- Файловая система
- Регулярные выражения
- Базы данных
- Двоичные данные
- Полезные функции

Чтение и запись текстовых файлов.
Текстовый файл представляет собой последовательность символов, принадлежащих определенному алфавиту. Каждый символ представляется определенным набором битов, зависящим от используемой кодировки. В случае 8-и битной кодировки (например, CP1251, стандартной для русскоязычных версий Windows), устанавливается строгое соответствие между 256-ю байтами и символами кодовой страницы. Помимо этого существуют многобайтовые кодировки (UTF-8, UTF-16, UTF-32, Unicode), позволяющие сохранять гораздо большее количество символов. В текстовых файлах также обычно присутствуют так называемые управляющие символы, не имеющие графического представления, но использующиеся для управления выводом текста на устройствах (табуляция, возврат каретки, перевод строки, звуковой сигнал и тп). Для чтения, создания и редактирования текстовых файлов человеком используются различные текстовые редакторы (текстовые процессоры). Исходные коды программ, написанных на различных ЯП, как правило, хранятся именно в текстовых файлах.
Объект FileSystemObject позволяет без труда осуществлять чтение и запись текстовых файлов в сценариях VBScript.
Для чтения всего текстового файла используем функцию readTxtFile (функция возвращает строку, содержащую все содержимое файла.):
Function readTxtFile(fPath)'возвращает содержимое текстового файла
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile(fPath)
ReadTxtFile = file.ReadAll()
file.Close
End Function
Для записи текствого файла используем процедуру writeTxtFile:
Sub writeTxtFile(fPath, str, mode)'пишет строку в текстовый файл
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile(fPath, mode, True)'create file
file.Write(str)
file.Close
End Sub
Пример:
Const fName = "sample.txt"
WScript.Echo "Creating file " & Chr(34) & fName & Chr(34)
Call writeTxtFile(fName, "The First String", ForWriting)'создание и запись файла
WScript.Echo "Content of the file:" & vbCrLf & "{"
WScript.Echo readTxtFile(fName)'чтение и вывод файла
WScript.Echo "}"
WScript.Echo "Appending string to the file.."
Call writeTxtFile(fName, vbCrLf & "The Second String", ForAppending)'добавление в файл
WScript.Echo "Content of the file:" & vbCrLf & "{"
WScript.Echo readTxtFile(fName)'чтение и вывод файла
WScript.Echo "}"
WScript.Echo "The End"
Функция getAllStrings возвращает все строки указанного файла в виде массива.
Function getAllStrings(fpath)'
Set strList = CreateObject("System.Collections.ArrayList")
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile(fPath, ForReading , True)
Do Until file.AtEndOfStream
str = file.ReadLine()
Call strList.Add(str)
Loop
file.Close
getAllStrings = strList.ToArray()
End Function
Пример:
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const fName = "sample.txt"
sampleStr = "a" & vbCrLf & "b" & vbCrLf & "c" & vbCrLf & "d" & vbCrLf & "e"
WScript.Echo "Creating file " & Chr(34) & fName & Chr(34)
Call writeTxtFile(fName, sampleStr, ForWriting)'создание и запись файла
strArr = getAllStrings(fName)
WScript.Echo "File has " & UBound(strArr) & " strings:"
For i = 0 To UBound(strArr)-1
WScript.Echo i+1 & ":" & Chr(34) & strArr(i) & Chr(34)
Next