На этом шаге мы рассмотрим основные моменты создания приложения, демонстрирующего работу с файлом последовательного доступа.
При последовательном доступе файл рассматривается как последовательность строк произвольной длины, разделенных специальными знаками. Чтение из файла и запись в файл производится построчно.
Приведенная ниже программа является примером создания простейшего текстового редактора, в который можно загрузить из файла уже существующий текст, отредактировать его и записать измененный текст в файл. Имя открываемого файла вводится в переменную ИмяФайла. Свободный номер для файла получается при помощи функции FreeFile и записывается в переменную Номер.
Итак, в редакторе форм создадим диалоговое окно Файл последовательного доступа (рисунок 1).
Рис.1. Диалоговое окно Файл последовательного доступа
Обсудим, как приведенная ниже программа решает описанную задачу и что в ней происходит.
Приведем текст приложения.
' Переменные уровня модуля Option Explicit Dim ИмяФайла As String Dim Номер As Integer Private Sub CommandButton1_Click() ' По нажатию кнопки содержимое поля записывается в файл Запись End Sub Private Sub ToggleButton1_Click() ' При установке переключателя отображается поле, ' в которое выводится текст из файла, и кнопка для ' записи изменений в поле в файл. ' При снятии переключателя поле и кнопка скрываются Номер = FreeFile ИмяФайла = "j:\Site\Works\pr224_1\help.txt" If ToggleButton1.Value = True Then TextBox1.Visible = True CommandButton1.Visible = True Открытие End If If ToggleButton1.Value = False Then CommandButton1.Visible = False TextBox1.Visible = False End If End Sub Private Sub UserForm_Initialize() ' Инициализация диалогового окна With TextBox1 .MultiLine = True .ScrollBars = fmScrollBarsBoth .Visible = False End With ToggleButton1.TripleState = False With CommandButton1 .WordWrap = True .Visible = False End With UserForm1.Caption = "Файл последовательного доступа" End Sub Sub Запись() ' Запись файла ' Открывается файл последовательного доступа для записи информации Open ИмяФайла For Output As Номер ' Содержание поля выводится в файл Print #Номер, TextBox1.Text ' Закрытие файла Close Номер End Sub Sub Открытие() ' Считывание из файла в поле ' Открывается файл последовательного доступа для считывания информации Open ИмяФайла For Input As Номер ' Содержание файла выводится в поле TextBox1.Text = Input(LOF(Номер), Номер) ' Закрытие файла Close Номер End Sub
На следующем шаге мы продолжим изучение этого вопроса.