Читайте также:
|
|
При сохранении или чтении данных в Visual Basic нередко используются последовательные файлы. Последовательный файл состоит из текстовых строк ASCII-формата (рис. 8.2).
Рис. 8.2. Образец последовательного файла
Для записи данных в последовательный файл необходимо открыть его в режиме Output или Append. Если файл не существует, Visual Basic автоматически создает его. Если же файл существует, то при его открытии в режиме Output существующие данные стираются, а в режиме Append новые записи добавляются в конец файла. Обычно файлы открываются для дополнения, но иногда они используются для временного хранения данных. В таких случаях вполне допускается уничтожение содержимого файла перед каждым применением. Чтобы прочитать данные из последовательного файла, следует открыть его в режиме Input. Независимо от того, в каком режиме открывается файл — Input, Output или Append, — для операций с ним используется файловый номер (см. далее). Не забывайте закрывать ненужные файлы, вызывая оператор Close с соответствующим файловым номером. Для записи в файл можно воспользоваться оператором Print # (или Write #), а для чтения— Line Input #(a также опеpaтором lnput # или функцией Input).
Ниже приведен фрагмент программы, который создает в каталоге C:\Data файл и записывает в него две строки:
Dim FileNo As Integer
FileNo = FreeFile
Open "C:\data\test.txt" For Append As FileNo
Print #FileNo, "Джон"
Print #FileNo, "Доу"
Close FileNo
Функция FreeFile возвращает свободный файловый номер, который будет использоваться в операторах Open, Print # и Close. Результаты выполнения предыдущего фрагмента можно просмотреть в программах WordPad или Notepad (рис. 8.3). Чтобы файл записывался заново, а не дополнялся (другими словами, чтобы стереть содержимое файла и внести в него новые данные), следует заменить Output ключевым словом Append.
Рис. 8.3. Просмотр результатов
При загрузке сохраненных данных можно прочитать каждую строку в массив. На всякий случай напомню: массивом называется список однородных величин, на которые можно ссылаться по имени и индексу. Более подробная информация о массивах приведена в уроке 7, «Типы данных». В следующем примере в массив загружается содержимое файла C:\Data\test.txt:
Dim FileNo As Integer
Dim GetValues() As String
Dim Counter As Integer
‘Инициализировать счетчик
Counter = 0
‘Получить уникальный файловый номер
FileNo = FreeFile
' Открыть файл
Open "C:\data\test.txt" For Input As FileNo
Do Until EOF(FileNo)
Counter = Counter + 1
ReDim Preserve GetValues(Counter)
Line Input #FileNo, GetValues(Counter)
Loop
Close FileNo
Функция EOF проверяет, не был ли достигнут при чтении конец файла. Конец файла помечается специальным ASCII-символом, который не отображается на экране и добавляется в файл при его создании или дополнении. Когда чтение данных будет завершено, можно перебрать величины из массива GetValues и присвоить их значения элементам или вывести на форме:
Dim J As Integer
For J = 0 To UBound(GetValues)
Print GetValues(J)
Next J
Чтобы улучшить работу этого фрагмента, включите строку Option Base 1 в секцию (General)(Declarations) вашей формы. В результате выполнения этой команды нумерация индексов массива начинается с 1, а не с принятого по умолчанию 0. Следовательно, цикл For...Next должен начинаться со значения 1, а не 0. Функция UBound возвращает максимальный, а функция LBound — минимальный индекс массива. Совместное использование этих функций позволяет определить фактический размер массива. Следующий фрагмент перебирает все элементы одномерного массива:
Dim J As Integer
For J = LBound(arrayname) To UBound(arrayname)
' Ваша программа
Next J
Дата добавления: 2015-07-20; просмотров: 71 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Работа с ASCII-файлами | | | Произвольный доступ |