Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документ Microsoft Office Word (2).doc
Скачиваний:
13
Добавлен:
29.05.2015
Размер:
41 Кб
Скачать
☆

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

При сохранении или чтении данных в Visual Basic нередко используются

последовательные файлы. Последовательный файл состоит из текстовых строк

ASCII-формата.

Для записи данных в последовательный файл необходимо открыть его в режиме

Output или Append. Если файл не существует, Visual Basic автоматически создает

его. Если же файл существует, то при его открытии в режиме Output существующие

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

Обычно файлы открываются для дополнения, но иногда они используются для

временного хранения данных. В таких случаях вполне допускается уничтожение

содержимого файла перед каждым применением.

Чтобы прочитать данные из последовательного файла, следует открыть его в

режиме Input.

Независимо от того, в каком режиме открывается файл — Input, Output или

Append, — для операций с ним используется файловый номер.

Для записи в файл можно воспользоваться оператором Print # (или Write #) для

чтения - Line Input # (а также оператором Input # или функцией Input).

Ниже приведен фрагмент программы, который создает в папке n:\data файл

test.txt и записывает в него две строки:

Dim fileno As Integer

fileno = FreeFile

Open "n:\data\test.txt" For Append As fileno

Print #fileno, "Это"

Print #fileno, "файл"

Close fileno

Функция FreeFile возвращает свободный файловый номер, который будет

использоваться в операторах Open, Print # и Close. Результаты выполнения

предыдущего фрагмента можно просмотреть в программах WordPad или Notepad.

Чтобы файл записывался заново, а не дополнялся (другими словами, что стереть

содержимое файла и внести в него новые данные), следует заменить Оutput

ключевым словом Append.

В следующем примере в массивы a() и b() загружается содержимое файла

n:\data\test.txt и затем в том же порядке выводится на форму.

Private Sub Command1_Click()

Dim fileno As Integer

Dim i As Integer, j As Integer, n As Integer

fileno = FreeFile

Open "n:\data\test.txt" For Input As fileno

Input #fileno, n

ReDim a(n, n) As Integer, b(n) As Integer

For i = 1 To n

For j = 1 To n

Input #fileno, a(i, j)

Next

Input #fileno, b(i)

Next

Form1.Print n

For i = 1 To n

For j = 1 To n

Form1.Print a(i, j),

Next

Form1.Print b(i)

Next

Close fileno

End Sub

При необходимости можно организовать окончание ввода данных при

достижении конца файла при помощи оператора EOF(fileno), например

Do Until EOF(fileno)

…

Конец файла помечается специальным ASCII-символом, который не

отображается на экране и добавляется в файл при его создании или дополнении.

Пример файлов ввода и вывода данных

Private Sub Command1_Click()

Dim flno As Integer

Dim i As Integer, j As Integer, n As Integer

flno = FreeFile

Open "j:\test.txt" For Input As flno

Input #flno, n

ReDim a(n, n) As Integer, b(n) As Integer

For i = 1 To n

For j = 1 To n

'ReDim Preserve a(i, j) As Integer

Input #flno, a(i, j)

Next

Input #flno, b(i)

Next

Form1.Print n

For i = 1 To n

For j = 1 To n

Form1.Print a(i, j),

Next

Form1.Print b(i)

Next

Close flno

End Sub

Private Sub Command2_Click()

Dim flno As Integer

flno = FreeFile

Open "s:\test.txt" For Output As flno

Print #flno, "Это"

Print #flno, "текстовый файл"

Print #flno, 1, 2, 5

Print #flno, 7, 8, 9

Close flno

End Sub