Двоичный | Данные сохраняются в строчной форме, в любом заданном порядке | Binary |
Не идите на поводу у номеров
Хотя в VBA рекомендуется обращаться к открытым файлам по номеру, запоминать то, с чем связаны какие-то числа, достаточно трудно и неудобно. Вместо номеров файлов можно использовать константы или переменные с понятным названием. Если наперед известен номер, который будет использоваться для отдельного файла, объявите для него константу. Данную константу затем можно использовать в операторе, воздействующем на файл. Вот пример:
Const PetsFile = 1, BdayFile = 2
Open "C:MiscDataPetsLog.txt" For Input As PetsFile
Open "C:MiscDataBirthdays.txt" For Random As BdayFile
Input #PetsFile, strPetlnfo ‘ чтение одного элемента из файла
Close PetsFile
Put BdayFile, 45, usrBDay ' запись одного элемента в файл
CloseBdayFile
Применяйте данный прием без опасения: вместо того чтобы собственноручно присваивать файлам номера, используйте функцию FreeFile, определяющую следующий доступный номер файла. Если значение, возвращаемое функцией, присвоить переменной, необходимость в запоминании номера просто отпадет. Вот пример применения данного приема: Dim DiaryFile As Integer DiaryFile = FreeFile () Open
"C:MySecretsDiary.txt" For Input As DiaryFile
Закрытие открытых файлов
Будьте аккуратными - после того как работа с файлами завершена, их следует закрыть.
Закрытие файла гарантирует, что все хранимые в памяти изменения действительно будут записаны на диск, а ресурсы, занимаемые файлами, освободятся и станут доступными для других приложений.
Для выполнения подобной задачи нужен, конечно же, оператор Close. Для закрытия определенного файла используется оператор вроде Close #2 (или Close PetsFile, как в предыдущем примере). Для закрытия всех открытых файлов оператор Close используется сам по себе.
Чтение и запись данных
Есть несколько VBA-команд для записи и извлечения данных из файла. В приведенной ниже таблице описана их работа.
Пример команды | Использование | Пояснение |
Оператор Put | Предназначен для записи переменных в файл | Put #1, 1800, StrQuote (записывает переменную StrQuote в двоичный файл, начиная с позиции 1800); Put #1, 15, usrCustomData (записывает переменную usr Cus t ornDa t a в файле с произвольным доступом в запись 15) |
Оператор Get | Предназначен для чтения из файла переменной, сохраненной с помощью оператора Put | Get t #1, 1800, StrQuote (читает строку данных из двоичного файла с позиции 1800 в переменную Str Quot e); Get #1, 15, usrCustomDat a (читает определенные пользователем данные, хранимые в 15-й записи переменной usrCustomData) |
Функция Input |