назад | содержание | вперед

Открытие двоичного файла

Двоичный файл открывается по-другому, чем файл последовательного доступа. Синтаксис оператора Open для двоичного файла выглядит следующим образом:

Open pathName For Binary As fileNumber

где:

Чтение данных из двоичных файлов

Чтение данных из двоичных файлов выполняется с помощью оператора Get #, имеющего следующий синтаксис:

Get #fileNumber, [recNumber], varName

где:

Запись данных в двоичные файлы

Для записи данных в двоичные файлы используется оператор put #, имеющий следующий синтаксис:

Put [#]fileNumber, [recNumber], varName

где:

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

Замечание

Оператор Put ft работает в паре с оператором Get #.

Работа с атрибутами файлов

Для работы с атрибутами файлов используются функции GetAttr и SetAttr. Синтаксис функции GetAttr, возвращающей атрибуты файлов, следующий:

GetAttr (pathName)

где pathName — путь, включающий имя файла, папку, устройство. По умолчанию применяется текущая папка и устройство.

Функция GetAttr возвращает число, которое определяет атрибуты файла. Интерпретировать это число можно при помощи параметров, описанных в табл. 9.3.

Таблица 9.3. Константы атрибутов файлов

Константа

Описание

Значение

vbNormal

Обычный файл

0

vbReadOnly

Файл только для чтения

1

vbHidden

Скрытый файл

2

vbSystem

Системный файл

4

vbDirectory

Каталог(папка)

16

vbArhive

Архивный файл

32


 

Аналогично работает функция setAttr, выполняющая установку атрибутов файлов. Синтаксис этой функции следующий:

SetAttr pathName, attributes

где:

Для того чтобы задать несколько атрибутов, можно просто просуммировать указанные константы. Например, для установки атрибутов файла Hidden и Read-only необходимо использовать функцию setAttr следующего вида:

SetAttr "MyFile", vbHidden + vbReadOnly

При этом для файла MyFile будут установлены атрибуты Hidden и Read-only.

Работа с папками и устройствами

Файл находится на самом нижнем уровне хранения информации в файловой системе компьютера. Выше в иерархии файловой системы расположены папки и устройства. Под устройством понимается не только жесткий диск, но и, например, устройство для чтения CD-ROM.

Для операций с папками и устройствами в Visual Basic существует набор функций и операторов (табл. 9.4), которые позволяют создавать и удалять папки, переименовывать их, раскрывать их содержимое.

Таблица 9.4. Функции и операторы для работы с папками и устройствами

Функция, оператор

Выполняемое действие

ChDir

Изменяет текущую папку

ChDrive

Изменяет текущее устройство

MkDir

Создает папку

RmDir

Удаляет папку

Name

Присваивает папке имя или переименовывает папку

CurDir

Возвращает текущий каталог

Dir

Возвращает список файлов папки


Из всего списка функций для работы с папками одной из самых полезных является функция Dir. Действие этой функции напоминает аналогичную команду DOS. С помощью этой функции можно получить список файлов указанной папки. При этом можно применять шаблон имени файла, используя типовые обозначения "*" — множественная подмена, "?" — подмена одного символа.

Функция Dir имеет следующий синтаксис:

Dir(pathName[, attributes])

где:

Указывая атрибуты для функции Dir, мы назначаем фильтр для списка выводимых файлов. Для того чтобы назначить одновременно несколько атрибутов, их можно просто арифметически сложить.

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

Таблица 9.5. Константы атрибутов файлов функции oir

Константа

Значение

Описание

vbNormal

0

Задает файлы без атрибутов

vbReadOnly

1

Задает файлы только для чтения

vbHidden

2

Задает скрытые файлы

vbSystem

4

Задает системные файлы

vbVolume

8

Задает метку тома

vbDirectory

16

- Задает папку (каталог)


 

Кратко опишем синтаксис еще нескольких полезных функций, используемых при работе с папками.

Для создания папки применяется оператор MkDir, синтаксис которого выглядит следующим образом:

MkDir path

где path — путь, включающий имя файла, папку, устройство. По умолчанию используется текущая папка и устройство.

Если параметр path не содержит имя устройства, папка будет создана на текущем устройстве.

Для удаления папок используется оператор RmDir, имеющий следующий синтаксис:

RmDir path

где path — путь, включающий имя файла, папку, устройство. По умолчанию используется текущая папка и устройство.

Совет

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

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

ChDrive drive где drive — строковое выражение, назначающее новое устройство.

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

Организация печати

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

Для пересылки данных на принтер используется прямое назначение порта принтера (LPT1, LPT2) в качестве получателя данных. Это можно сделать при помощи оператора открытия файла open:

Open "LPT 1" For Output As #nPrinterHandle

После выполнения этого оператора для адресации данных на принтер необходимо использовать дескриптор (идентификатор файла) #nprinterHandle. Если в приложении не поддерживается вычисление идентификатора файлов, то следует использовать функцию FreeFile для его вычисления. Аналогично можно направить данные в любой другой порт компьютера или сети.

После того как порт открыт для приема данных, можно использовать оператор print #. Следующее выражение посылает на принтер данные для печати:

Print #nPrinterHandle, strExpression

В этом выражении strExpression задает печатаемый текст.

Используя функции и операторы чтения данных из файла, можно организовать циклический построчный вывод файла на печать.

Однако этот метод организации вывода данных на печать имеет свои тонкости. Все операции работы принтера (позиционирование печатающей головки, перевод строки, перевод страницы и др.) теперь потребуется программировать с помощью специальных операторов, которые понимает принтер. Такие операторы называются Esc-кодами (Esc-последовательностями). Их описание прилагается к каждому принтеру и здесь мы не будем их рассматривать.

После завершения печати данных порт закрывается оператором close, который также используется для закрытия файла:

Close #nPrinterHandle

или

Close

При использовании оператора close без дескриптора одновременно с портом закрываются и файлы, из которых выводилась информация.

Система файловых объектов (FSO)

В Visual Basic 6 кроме традиционного применяется принципиально новый метод работы с файлами, который заключается в использовании объектно-ориентированного подхода. В систему файловых объектов FSO (File System Objects) входит набор классов объектов с большим количеством методов.

В этом разделе мы перечислим основные классы системы и обсудим методику их использования. Основные классы объектов, которые входят в состав FSO, указаны в табл. 9.6.

Таблица 9.6. Список основных классбв объектов системы файловых объектов

Класс

Описание

Drive

Класс для работы с устройствами системы. Понятие устройство в данном случае имеет широкое значение и включает в себя, например, жесткий диск, устройство CD-ROM, логический диск

Folder

Класс для работы с папками: создание, удаление, чтение и установка атрибутов папок

Files

Класс для работы с файлами: создание, удаление, копирование файлов, чтение и установка атрибутов файлов

FileSystemObject

Базовый класс системы, на основе которого построены все другие классы. Часть методов и свойств дублируют методы и свойства других классов

TextStream

Специальный класс для работы с текстовыми файлами


 

Для того чтобы можно было пользоваться объектами FSO, необходимо подключить к проекту библиотеку Microsoft Scripting Runtime в окне подключения ссылок References (Ссылки), открываемом при выполнении команды References меню Project (Проект). В этой библиотеке находятся все классы системы FSO. Просмотреть методы и свойства классов можно с помощью окна Object Browser (Браузер объектов), которое вызывается командой Object Browser меню View (Вид). В этом окне все классы FSO находятся в библиотеке Scripting, которую можно найти по этому имени в верхнем раскрывающемся списке.

Рассмотрим методы и свойства, входящие в эти классы.

Класс Drive

В классе Drive собраны свойства для работы с устройствами файловой системы (рис. 9.6).

Объекты данного класса содержат свойства, описанные в табл. 9.7.

Таблица 9.7. Список свойств класса Drive

Свойство

Назначение

AvailableSpace

Возвращает значение свободного пространства устройства, доступное пользователю

DriveLetter

Возвращает буквенное обозначение устройства

DriveType

Возвращает тип устройства в виде следующих текстовых значений: "Unknown", "Removable", "Fixed", "Network", "CD-ROM", "RAM Disk"

FileSystem

Возвращает тип файловой системы устройства (FAT, NTFS или CDFS)

FreeSpace

Возвращает общее свободное пространство. Это свойство является аналогом AvailableSpace

IsReady

Указывает готовность устройства к работе: True — готово к работе, False — не готово к работе

Path

Возвращает путь устройства, папки, файла

RootFolder

Возвращает корневую папку указанного устройства

Serial-Number

Возвращает числовой идентификатор тома диска

ShareName

Возвращает сетевое имя указанного устройства

TotalSize

Возвращает общий размер устройства в байтах

VolumeName

Возвращает или устанавливает имя тома устройства


 

Рис. 9.6. Класс Drive в системе FSO

Класс File

В классе File предоставлены свойства и методы для работы с файлами (рис. 9.7).

Рис. 9.7. Класс File в системе FSO

Класс характеризуется свойствами, описанными в табл. 9.8.

Таблица 9.8. Список свойств класса File

Свойство

Описание

Attributes

Возвращает или устанавливает атрибуты файлов и папок. Значения атрибутов такие же, как в аналогичной функции GetAttr традиционной системы функций для работы с файлами (описаны в табл. 9.3). Дополнительно здесь используются еще два атрибута: Alias (числовое значение 64) и Compressed (числовое значение 128)

DateCreated

Возвращает дату и время создания файла

DateLastAccessed

Возвращает дату и время последнего обращения к указанному файлу

DateLastModified

Возвращает дату и время последнего изменения файла

Drive

Возвращает буквенное обозначение устройства, на котором находится файл

Name

Возвращает или устанавливает имя файла

ParentFolder

Возвращает имя родительской папки для файла

Path

Возвращает путь файла

ShortName

Возвращает короткое имя файла по соглашению "8.3" (восемь символов для имени и три для расширения)

ShortPath

Возвращает путь и короткое имя файла по соглашению "8.3"

Size

Возвращает размер файла в байтах

Type

Возвращает краткую информацию о типе файла. Например, для файла с расширением txt это будет "Text Document"



В отличие от класса Drive, класс File содержит методы, список которых приведен в табл. 9.9.

Таблица 9.9. Список методов класса File

Метод

Описание

Copy

Копирует файл

Delete

Удаляет указанный файл

Move

Перемещает файл

OpenAsTextStream

Открывает файл и возвращает имя объекта TextStream для чтения, записи или добавления текстовых данных


 

Класс Folder

Класс Folder позволяет работать с папками (рис. 9.8). В этот класс входят такие же методы и свойства, как и в класс File. Они выполняют те же действия, но только в применении к папкам.

Дополнительно этот класс характеризуется свойствами, описанными в табл. 9.10.

Таблица 9.10. Список свойств класса Folder

Свойство

Описание

Files

Возвращает список файлов, включая системные и скрытые

IsRootFolder

Определяет, является ли указанная папка корневой и возвращает True, если это так, в противном случае возвращает False

SubFolders

Возвращает список папок, входящих в указанную


 

Рис. 9.8. Класс Folder в системе FSO

Класс FileSystemObject

Класс FileSystemObject является базовым для системы файловых объектов и его методы частично дублируют методы предыдущих классов (рис. 9.9). Класс характеризуется единственным свойством Drives, которое возвращает список доступных устройств.

Рис. 9.9. Класс FileSystemObject в системе FSO

Список методов этого класса гораздо богаче. В него входят методы, описанные в табл. 9.1).

Таблица 9.11. Список методов класса FileSystemObject

Метод

Описание

BuildPath

Формирует путь файла

Copy File

Копирует файл

CopyFolder

Копирует папку

CreateFolder

Создает папку

CreateTextFile

Создает текстовый файл

DeleteFile

Удаляет файл

DeleteFolder

Удаляет папку

DriveExists

Запрашивает существование устройства

FileExists

Запрашивает существование файла

FolderExists

Запрашивает существование папки

GetAbsolutePathName

Возвращает полный путь

GetDrive

Возвращает ссылку на объект, связанный с указанным устройством

GetDriveName

Возвращает имя устройства

GetExtensionName

Возвращает полное имя

GetFile

Возвращает ссылку на объект, связанный с указанным файлом

GetFileName

Возвращает имя файла

Get Folder

Возвращает ссылку на объект, связанный с указанной папкой

Get ParentFolderName

Возвращает имя родительской папки

GetSpecialFolder

Возвращает тип папки: Windows, System, Temporary

GetTempName

Возвращает случайное имя файла или папки

MoveFile

Перемещает файл

Move Folder

Перемещает папку

OpenTextFile

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


 

Класс TextStream

Класс TextStream предназначен для работы с текстовыми файлами (рис. 9.10).

Рис. 9.10. Класс TextStream в системе FSO

Свойства данного класса описываются в табл. 9.12.

Таблица 9.12. Список свойств класса TextStream

Свойство

Описание

AtAndOfLine

Определяет наличие метки конца строки для указателя позиции в файле

AtAndOfStream

Определяет наличие метки конца файла для указателя позиции в файле

Column

Определяет номер текущей колонки для символа в строке файла

Line

Определяет текущую строку в файле


 

Кроме свойств, в классе TextStream представлены методы, описанные в табл. 9.13.

Таблица 9.13. Список методов класса TextStream

Метод

Описание

Close

Закрывает файл

Read

Читает указанное количество символов из файла

ReadAll

Читает все содержимое файла

ReadLine

Читает строку из файла

Skip

Пропускает указанное количество символов при чтении файла

SkipLine

Пропускает следующую строку при чтении файла

Write

Записывает заданную текстовую строку в файл

WriteBlankLines

Добавляет указанное количество строк в файл

WriteLine

Записывает заданную текстовую строку и метку новой строки


 

Программирование в системе FSO

Новые методы системы FSO расширяют и дополняют традиционные возможности Visual Basic при работе с файлами. Использование системы FSO состоит из трех этапов:

1. Создание объекта системы FSO.

2. Настройка требуемых методов объекта FSO.

3. Настройка доступных свойств объекта FSO.

Создать объект системы FSO можно объявлением переменной типа FSO:

Dim NewFSO As New FileSystemOb]ect

Для создания объекта можно также использовать следующий оператор:

Set NewFSO = CreateObject("Scripting.FileSystemObject")

В данном случае Scripting. FileSystemOb:ect — это требуемый объект с указанием библиотеки.

После этого можно работать со свойствами и методами объекта NewFSO как со всеми другими объектами приложения.

Работа с устройствами и папками

С помощью FSO можно получить полную информацию об устройствах, используя свойства объектов класса Drive системы FSO. Для изучения свойств класса Drive создадим небольшое приложение, собирающее информацию об устройствах. Выполните следующие действия:

1. Создайте новый стандартный проект. Для этого в меню File (Файл) выберите команду New Project (Создать новый проект) и в окне выбора типа проекта дважды щелкните мышью на значке Standard EXE.

2. Присвойте проекту имя MyFSO. Для этого откройте окно свойств проекта, выбрав команду Project1 Properties (Свойства Project 1) меню Project (Проект).

3. Присвойте форме проекта имя frmFormAboutDrive. В свойство Caption формы введите заголовок Сведения об устройстве.

4. Разместите в форме объект типа DriveListBox, дважды нажав кнопку DriveListBox на панели элементов управления. Используя свойство Name, присвойте объекту имя drvSelectDrive.

5. Добавьте в форму элемент управления типа commandButton. Назовите созданную кнопку cbStart.

Созданное приложение показано рис. 9.11.

Рис. 9.11. Приложение для изучения свойств класса Drive

6. Откройте окно редактора и введите приведенный ниже код:

Private Sub GetInfoAboutDrive()

Dim NewFSO As New FileSystemObject, Driver As Drive

Dim sInfoDrv(l To 4) As String, sSayAboutInfo As String

Set Driver = New

FSO.GetDrive(NewFSO.GetDriveName(drvSelectDrive.Drive))

If Driver.IsReady = True Then

sInfoDrv(l) = Driver.SerialNumber

sInfoDrv(2) = Driver.TotalSize / 1048576

sInfoDrv(3) = Driver.FreeSpace / 1048576

sInfoDrv(4) = Driver.FileSystem

sSayAboutInfo = "№ " + sInfoDrv(1) + Chr(10)

sSayAboutInfo = sSayAboutInfo + "Всего: " + s!nfoDrv(2) + _

" МБайт" + Chr(10)

sSayAboutInfo = sSayAboutInfo + "Свободно: " + slnfo0rv(3) + _

" МБайт " + Chr(10)

sSayAboutInfo = sSayAboutInfo + "Файловая система: " + _

sInfoDrv(4) + Chr(10)

Else

sSayAboutInfo = "Устройство не готово" + Chr(10)

End If

'Вывод в окно Immediate

Debug.Print sSayAboutInfo

'Вывод в окно сообщения

MsgBox sSayAboutInfo,, "Сведения об устройстве"

End Sub

Private Sub cbStart_Click ()

GetInfoAboutDrive

End Sub

7. Запустите приложение на выполнение. При нажатии кнопки, расположенной в форме, в окно сообщения выдаются сведения о выбранном устройстве. Одновременно информация выдается в окно Immediate (Непосредственное выполнение).

Замечание

Необходимо напомнить, что для работы с FSO следует подключить к проекту библиотеку Microsoft Scripting Runtime, используя окно подключения ссылок References (Ссылки).

При работе с папками можно выполнять следующие действия:

Для работы с папками используются объекты двух классов: Folder или FileSystemObject.

Рассмотрим работу с папками на примере небольшого приложения. Выполните следующие действия:

1. Создайте новый стандартный проект. Для этого в меню File (Файл) выберите команду New Project (Создать новый проект) и в окне выбора типа проекта дважды щелкните мышью на значке Standard EXE.

2. Присвойте проекту имя MyFSOAndFolder. Для этого откройте окно свойств проекта, выбрав команду Projecti Properties (Свойства Project!) меню Project (Проект).

3. Присвойте форме проекта имя frmFormFolder. В свойство caption формы введите заголовок Работа с папками.

4. Разместите в форме объект типа DriveListBox, дважды щелкнув мышью кнопку DriveListBox на панели элементов управления. Используя свойство Name, Присвойте объекту ИМЯ drvSelectDrive.

5. Добавьте в форму объект типа DirListBox для поиска папок. Для этого дважды щелкните мышью кнопку DirListBox на панели элементов управления. Используя свойство Name, присвойте объекту имя dirFolders.

6. Добавьте в форму поле типа TextBox и назовите его txtNameFolder. Для пояснения расположите над этим полем метку Label. Размер (длина) метки должен быть равен размеру поля txtNameFolder. Значение свойства Alignment (Выравнивание) метки установите равным 2-Center.

7. Добавьте в форму три кнопки типа CommandButton. Назовите эти кнопки cbCreate, cbDelete, cbRename и, используя свойство Caption, разместите на них, соответственно, надписи Создать, Удалить, Переименовать.

Созданное приложение показано на рис. 9.12.

Рис. 9.12. Приложение для изучения работы с папками

8. Откройте окно редактора и введите приведенный ниже код:

Dim NewFSO As New FileSystemObject, Folder As Folder

Dim sNameFolder As String

Private Sub cbCreate_Click()

' Создание папки

If txtNameFolder <> "" Then

sNameFolder = dirFolders.Path

Set Folder = NewFSO.GetFolder(sNameFolder)

If Folder.IsRootFolder = True Then

MsgBox sSayAboutInfo,, "Корневая папка"

sNameFolder = dirFolders.Path + txtNameFolder.Text

Else

sNameFolder = dirFolders.Path + "\" + txtNameFolder.Text

End If

NewFSO.CreateFolder (sNameFolder)

End If

End Sub

Private Sub cbDelete_Click ()

' Удаление папки

sNameFolder = dirFolders.Path

Set Folder = NewFSO.GetFolder(sNameFolder)

NewFSO.DeleteFolder (sNameFolder)

End Sub

Private Sub cbRename_Click()

' Переименование папки

sNameFolder = dirFolders.Path

Set Folder = NewFSO.GetFolder(sNameFolder)

Folder.Name = txtNameFolder.Text

End Sub

Private Sub drvSelectDrive Change()

dirFolders.Path = drvSelectDrive.Drive

End Sub

9. Запустите приложение на выполнение. Обратите внимание на синхронизацию Объектов drvSelectDrive (Список устройств) И dirFolders (Список папок), которая выполняется по событию change списка устройств. При работе с примером необходимо помнить, что выбор значения в списке выполняется двойным щелчком мыши, то есть свойство path списка папок обновляется по двойному щелчку мыши.

Работа с файлами

При работе с файлами в FSO принято делить выполняемые действия на две большие группы.

Работа на уровне файлов

Для создания файла можно использовать метод createTextFile класса FileSystemObject:

Dim NewFSO As New FileSystemObject, NewFile As TextStream

Set NewFile = NewFSO.CreateTextFile ("C:\NewFile.txt")

Для удаления файла используется метод Delete класса File. Необходимо заметить, что перед удалением файл должен быть закрыт с помощью метода close. Программный код, выполняющий удаление файла в приложении, выглядит следующим образом:

Dim NewFile As TextStream, File

Set NewFile = NewFSO.CreateTextFile("c:\NewFile.txt")

NewFile.Close

Set File = NewFSO.GetFile("c:\NewFile.txt")

File.Delete

В этом примере файл сначала создается, а затем удаляется.

Перемещение файлов выполняется с помощью метода Move класса File. Если воспользоваться предыдущим текстом, то код, выполняющий перемещение файла, выглядит следующим образом:

Dim NewFile As TextStream, File

Set NewFile = NewFSO.CreateTextFile("c:\NewFile.txt")

NewFile.Close

Set File = NewFSO.GetFile("c:\NewFile.txt")

File.Move ("c:\NewFile.txt")

При этом, как и при удалении, необходимо закрывать файл.

Копирование файла выполняется аналогично перемещению с использованием метода copy.

Разработаем приложение для изучения работы с файлами. Для этого воспользуемся приложением, созданным в предыдущем примере при рассмотрении работы с папками. Откройте приложение и модифицируйте его следующим образом:

1. Увеличьте размер формы, переставьте кнопки и текстовое поле с меткой, как показано на рис. 9.13. Текст метки измените на Имя файла.

2. Добавьте в форму объект типа FileListBox (Список файлов), дважды щелкнув мышью кнопку FileListBox на панели элементов управления. Используя свойство Name, назовите его filFiles.

3. Измените текст кода в приложении на указанный ниже:

Dim NewFSO As New FileSystemObject, Folder As Folder

Dim sNameFolder As String

Dim sNameFile As String

Dim File

Private Sub cbCreate_Click()

' Создание файла

Dim NewFile As TextStream

sNameFile = dirFolders.Path + "\" + txtNameFile.Text

Set NewFile = NewFSO.CreateTextFile(sNameFile)

filFiles.Refresh

End Sub

Private Sub cbDelete_Click()

' Удаление файла

sNameFolder = dirFolders.Path

Set Folder = NewFSO.GetFolder(sNameFolder)

If Folder.IsRootFolder = True Then

sNameFile = filFiles.Path + filFiles.FileName

Else

sNameFile = filFiles.Path + "\" + filFiles.FileName

End If

Set File = NewFSO.GetFile(sNameFile)

File.Delete

filFiles.Refresh

End Sub

Private Sub cbRename_Click ()

' Переименование файла

sNameFolder = dirFolders.Path

Set Folder = NewFSO.GetFolder(sNameFolder)

If Folder.IsRootFolder = True Then

sNameFile = filFiles.Path + filFiles.FileName

Else

sNameFile = filFiles.Path + "\" + filFiles.FileName

End If

Set File = NewFSO.GetFile(sNameFile)

File.Name = txtNameFile.Text fil

Files.Refresh

End Sub

Private Sub dirFolders Change()

filFiles.Path = dirFolders.Path

End Sub

Private Sub drvSelectDrive_Change()

dirFolders.Path = drvSelectDrive.Drive

End Sub

Private Sub filFiles_Click()

txtNameFile.Text = filFiles.FileName

End Sub

Рис. 9.13. Приложение для изучения работы с файлами

В этом приложении создаются, удаляются и переименовываются файлы. Работа списков синхронизирована по событию change списков устройств и папок.

Работа на уровне данных

Запись данных в файл выполняется с помощью методов write и WriteLine класса TextStream. Если необходимо добавить в файл пустую строку, можно использовать метод WriteBlankLines.

Метод WriteLine отличается от write тем, что первый добавляет в записываемую строку метку конца строки.

Корректная запись данных в файл предполагает выполнение этой операции в три этапа:

1. Открытие файла.

2. Запись данных одним из методов.

3. Закрытие файла.

В программном коде показано применение этих методов для записи данных в файл:

Dim NewFSO, txtNewFile

Set NewFSO = CreateObject("Scripting.FileSystemObject")

Set txtNewFile = NewFSO.CreateTextFile("c:\IniFile.ini". True)

' Запись строки

txtNewFile.Write ("Файл инициализации приложения")

' Запись

txtNewFile.WriteBlankLines (2)

' Запись строки с меткой конца строки

txtNewFile.WriteLine ("Parameter = 70")

txtNewFile.Close

Чтение данных из файла выполняется по блокам, построчно или целиком.

для этого используются соответственно методы Read, ReadLine и ReadAll.

Работу этих методов можно изучить, дополнив предыдущий текст следующим кодом:

' Чтение из файла

Dim File As File

Dim sFileCont As String

Set File = NewFSO.GetFile("c:\IniFile.ini")

Set txtNewFile = File.OpenAsTextStream(ForReading)

sFileCont = txtNewFile.Read(40) I

MsgBox sFileCont

sFileCont = txtNewFile.ReadLine

MsgBox sFileCont

txtNewFile.Close

Замечание

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

назад | содержание | вперед

Hosting uCoz