Объект TextStream. Чтение и запись файла

Методы CreateTextFile() и OpenTextFile() возвращают объект TextStream, с помощью которого производится дальнейшая работа с файлом. Объект TextStream содержит следующие методы:

  • Close() — закрывает файл;
  • Write <Строка> — записывает строку в файл:
Dim fso As New FileSystemObject
Dim f As TextStream
Set f = fso.OpenTextFile(ThisWorkbook.Path & "\file1.txt", _
                         ForWriting, True)
f.Write "Строка" ' Записываем строку в файл
f.Close          ' Закрываем файл
  • WriteBlankLines <Количество> — записывает указанное количество символов новой строки:
Dim fso As New FileSystemObject
Dim f As TextStream
Set f = fso.OpenTextFile(ThisWorkbook.Path & "\file1.txt", _
                         ForAppending)
f.WriteBlankLines 1
f.Close          ' Закрываем файл
  • WriteLine <Строка> — записывает строку в файл и добавляет символ перевода строки:
Dim fso As New FileSystemObject
Dim f As TextStream
Set f = fso.OpenTextFile(ThisWorkbook.Path & "\file1.txt", _
                         ForAppending)
f.WriteLine "Строка3"
f.Close          ' Закрываем файл
  • Read(<Количество>) — считывает из файла указанное количество символов и возвращает их:
Dim fso As New FileSystemObject
Dim f As TextStream
Set f = fso.OpenTextFile(ThisWorkbook.Path & "\file1.txt", _
                         ForReading)
Debug.Print f.Read(7) ' Строка1
f.Close               ' Закрываем файл
  • ReadLine() — считывает одну строку при каждом вызове и возвращает ее:
Dim fso As New FileSystemObject
Dim f As TextStream
Set f = fso.OpenTextFile(ThisWorkbook.Path & "\file1.txt", _
                         ForReading)
Debug.Print f.ReadLine() ' Строка1
Debug.Print f.ReadLine() ' Строка2
f.Close                  ' Закрываем файл
  • ReadAll() — считывает весь файл в строку и возвращает ее:
Dim fso As New FileSystemObject
Dim f As TextStream
Set f = fso.OpenTextFile(ThisWorkbook.Path & "\file1.txt", _
                         ForReading)
Debug.Print f.ReadAll()
' Строка1
' Строка2
' Строка3
'
f.Close                  ' Закрываем файл
  • Skip <Количество> — пропускает указанное количество символов:
Dim fso As New FileSystemObject
Dim f As TextStream
Set f = fso.OpenTextFile(ThisWorkbook.Path & "\file1.txt", _
                         ForReading)
f.Skip 9              ' Пропускаем 9 символов
Debug.Print f.Read(7) ' Строка2
f.Close               ' Закрываем файл
  • SkipLine() — пропускает одну строку:
Dim fso As New FileSystemObject
Dim f As TextStream
Set f = fso.OpenTextFile(ThisWorkbook.Path & "\file1.txt", _
                         ForReading)
f.SkipLine            ' Пропускаем 1 строку
Debug.Print f.Read(7) ' Строка2
f.Close               ' Закрываем файл

Объект TextStream содержит следующие свойства (все свойства доступны только для чтения):

  • AtEndOfLine — содержит значение True, если указатель находится в конце строки, и False — в противном случае;
  • AtEndOfStream — содержит значение True, если указатель находится в конце файла, и False — в противном случае. Пример построчного чтения файла:
Dim fso As New FileSystemObject
Dim f As TextStream
Set f = fso.OpenTextFile(ThisWorkbook.Path & "\file1.txt", _
                         ForReading)
Do While Not f.AtEndOfStream
    Debug.Print f.ReadLine()
Loop
f.Close               ' Закрываем файл
  • Column — содержит номер позиции в текущей строке;
  • Line — содержит номер текущей строки.

Visual Basic for Applications (VBA)
Самоучитель по VBA

Помощь сайту

Yandex-деньги: 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

Поиск по сайту в Яндексе