Шаг 224.
VBA в MSExcel. Практические приемы программирования на VBA. Тема: работа с файлами. Практика (файл последовательного доступа)

    На этом шаге мы рассмотрим основные моменты создания приложения, демонстрирующего работу с файлом последовательного доступа.

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

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

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


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

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

UserForm_Initialize
  1. Активизирует диалоговое окно.
  2. Отображает переключатель Подсказка и скрывает поле и кнопку Сохранить изменения?.
  3. Устанавливает свойства поля, кнопки, а также задает заголовок диалогового окна.

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

Нажатие кнопки Сохранить изменения? запускает на выполнение процедуру CommandButton1_Click
Записывает содержимое поля в файл.

Открытие и Запись
Процедуры считывают содержимое файла в поле и записывают содержимое поля в файл соответственно.

    Приведем текст приложения.

' Переменные уровня модуля
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
Текст этого примера можно взять здесь.

    На следующем шаге мы продолжим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг