Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Последовательный доступ






При сохранении или чтении данных в 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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.