назад | содержание
| вперед
Открытие двоичного файла
Двоичный файл открывается по-другому, чем файл последовательного доступа. Синтаксис оператора 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
где:
Замечание
В функции SetAttr используются все константы, описанные в табл. 9.3, кроме константы vbDirectory.
Для того чтобы задать несколько атрибутов, можно просто просуммировать указанные константы. Например, для установки атрибутов файла 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 собраны свойства для работы с устройствами файловой системы (рис. 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 предоставлены свойства и методы для работы с файлами (рис. 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 позволяет работать с папками (рис. 9.8). В этот класс входят такие же методы и свойства, как и в класс File. Они выполняют те же действия, но только в применении к папкам.
Дополнительно этот класс характеризуется свойствами, описанными в табл. 9.10.
Таблица 9.10. Список свойств класса Folder
Свойство |
Описание |
Files |
Возвращает список файлов, включая системные и скрытые |
IsRootFolder |
Определяет, является ли указанная папка корневой и возвращает True, если это так, в противном случае возвращает False |
SubFolders |
Возвращает список папок, входящих в указанную |
Рис. 9.8. Класс Folder в системе FSO
Класс 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 предназначен для работы с текстовыми файлами (рис. 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