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

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