Самоучитель VBA

       

Файл последовательного доступа


При последовательном доступе файл рассматривается как последовательность строк произвольной длины, разделенных специальными знаками. Чтение из файла и запись в файл производится построчно.

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

Итак, в редакторе форм создадим диалоговое окно Файл последовательного доступа (рис. У 14.1).

Рис. У14.1. Диалоговое окно Файл последовательного доступа

Обсудим, как приведенная ниже программа решает описанную задачу и что в ней происходит.



UserForm_Initialize

  1. Активизирует диалоговое окно.

  2. Отображает переключатель Подсказка и скрывает поле и кнопку Сохранить изменения?.

    Устанавливает свойства поля, кнопки, а также задает заголовок диалогового окна.

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


Содержание раздела