Файл последовательного доступа
При последовательном доступе файл рассматривается как последовательность строк произвольной длины, разделенных специальными знаками. Чтение из файла и запись в файл производится построчно.
Приведенная ниже программа является примером создания простейшего текстового редактора, в который можно загрузить из файла уже существующий текст, отредактировать его и записать измененный текст в файл. Имя открываемого файла вводится в переменную имяФайла. Свободный номер для файла получается при помощи функции FreeFile и записывается в переменную Номер.
Итак, в редакторе форм создадим диалоговое окно Файл последовательного доступа (рис. У 14.1).

Рис. У14.1. Диалоговое окно Файл последовательного доступа
Обсудим, как приведенная ниже программа решает описанную задачу и что в ней происходит.
UserForm_Initialize |
| ||||
ToggleButton1_Click |
При установке переключателя отображается поле, в которое выводится текст из файла, а также отображается кнопка Сохранить изменения? При снятии переключателя, поле и кнопка скрываются. | ||||
Нажатие кнопки Сохранить изменения? запускает на выполнение процедуру CommandButton1_Click |
Записывает содержимое поля в файл. | ||||
Открытие и Запись |
Процедуры считывают содержимое файла в поле и записывают содержимое поля в файл соответственно. | ||||
'
' Переменные уровня модуля
'
Option Explicit
Dim ИмяФайла As String
Dim Номер As Integer
'
Private Sub CommandButtonl_Click()
'
' По нажатию кнопки содержимое поля записывается в файл
Запись
End Sub
'
Private Sub ToggleButtonl_Click()
'
' При установке переключателя отображается поле,
' в которое выводится текст из файла, и кнопка для
' записи изменений в поле в файл.
' При снятии переключателя поле и кнопка скрываются
'
Номер = FreeFile
ИмяФайла = "c:\my_doc\book_ex\help.txt"
'
If ToggleButtonl.Value = True
Then TextBoxl.Visible = True
CommandButtonl.Visible = True
Открытие
End If
If ToggleButtonl.Value = False
Then CommandButtonl.Visible = False
TextBoxl.Visible = False
End If '
End Sub '
Private Sub UserForm_Initialize()
' Инициализация диалогового окна
'
With TextBoxl
.MultiLine = True
.ScrollBars = fmScrollBarsBoth
.Visible = False End With
ToggleButtonl.TripleState = False
With CommandButtonl
.Wordwrap = True
.Visible = False End With
UserForm2.Caption = "Файл последовательного доступа"
End Sub
Sub Запись()
' Запись файла
' Открывается файл последовательного доступа для записи информации
Open ИмяФайла For Output As Номер
' Содержание поля выводится в файл
'
Print #Номер, TextBoxl.Text
'
' Закрытие файла
'
Close Номер
'
End Sub
Sub Открытие()
'
' Считывание из файла в поле
' Открывается файл последовательного доступа для считывания информации
Open ИмяФайла For Input As Номер
' Содержание файла выводится в поле
'
TextBoxl.Text = Input(LOF(Номер), Номер)
'
' Закрытие файла '
Close Номер End Sub