Добавить в корзинуПозвонить
Найти в Дзене
Devir013

Программируем в VBA. Часть 5. Хранение данных в файле.

Как вводятся данные и проверяются на пригодность к расчётам рассмотрели. Теперь можно задаться вопросом, а если нам нужно расширить диапазон расчётов? ...Тогда нужно будет усложнить программу и изменить тип переменной с Integer на Long или Single. Поменять границы проверок на попадания вводимой переменной Х в разрешённый диапазон. Как видим есть задачи, которые в нашей программе могут возникнуть и если их решить, то на простом примере можно увидеть как это работает. Программе нужны настройки, которые где-то надо хранить после окончания работы программы. Обычно для этого создаются специальные файлы конфигурации, где сохраняется служебная информация по текущей конфигурации программы. Для изучения этого вопроса используем нашу программу. Зададим программе для вычисления квадрата всего один параметр конфигурации-Cnf, чтобы решить задачу по расширению вычислительных возможностей нашей программы. Если Cnf=2 программа вычисляет квадрат, а если Cnf=3, то куб от введённого
Рисунок 1-Круговорот данных в файлах.
Рисунок 1-Круговорот данных в файлах.

Как вводятся данные и проверяются на пригодность к расчётам рассмотрели. Теперь можно задаться вопросом, а если нам нужно расширить диапазон расчётов? ...Тогда нужно будет усложнить программу и изменить тип переменной с Integer на Long или Single. Поменять границы проверок на попадания вводимой переменной Х в разрешённый диапазон. Как видим есть задачи, которые в нашей программе могут возникнуть и если их решить, то на простом примере можно увидеть как это работает.

Программе нужны настройки, которые где-то надо хранить после окончания работы программы. Обычно для этого создаются специальные файлы конфигурации, где сохраняется служебная информация по текущей конфигурации программы.

Для изучения этого вопроса используем нашу программу. Зададим программе для вычисления квадрата всего один параметр конфигурации-Cnf, чтобы решить задачу по расширению вычислительных возможностей нашей программы. Если Cnf=2 программа вычисляет квадрат, а если Cnf=3, то куб от введённого числа. Соответственно и границы проверки корректности вводимых чисел должны изменяться.

Для работы с файлами в VBA есть специальные операторы и функции. Для выполнения нашей задачи будем использовать тип файла последовательного доступа, где можно хранить информацию в текстовом виде. Алгоритм работы программы с файлом следующий:

1. открыть файл;

Open pDIR For Append As NF

, где pDIR-в переменной указывается путь к файлу; Append-режим доступа к файлу. Это последовательный доступ к файлу. Если файл отсутствует, то создаётся новый. NF-номер открытого файла. Перед открытием файла нужно определить свободный номер для открываемого файла специальной функцией FreeFile(0). Открыть можно несколько файлов и каждому будет присвоен свой номер.

2. Считать или записать информацию;

Input NF, Cnf -чтение информации из файла под номером NF в переменную Cnf

Print NF, Cnf-Запись информации из переменой Cnf в файл с номером NF

3. закрыть файл.

Close NF , закрывается файл под номером NF

Вот и вся основная информация, которая нам нужна. Если нужна более полная информация, то можно прочитать в справочной литературе по VBA.

Открываем нашу книгу Excel с уже созданными модулями 1-3 и добавляем четвёртый модуль и пишем для него программный код:

Вначале описываем переменные и комментарии к ним. Комментарии разъясняют что для чего предназначено. Далее в программном коде идёт программа( начинается со строки Public Sub main()). Первым идёт блок установки значений переменных, затем блок чтения конфигурации из файла, который работает по алгоритму, который представлен блок-схемой (рисунок 3):

Рисунок 3-Блок-схема работы программы с файлом.
Рисунок 3-Блок-схема работы программы с файлом.

Если файл отсутствует, то функция Dir(pDIR) возвращает пустое значение и тогда создаётся файл и записывается в него значение "2". А если файл существует, то функция Dir(pDIR) возвращает путь к файлу и тогда считывается значение конфигурации в переменную Cnf. На этом работа с файлом заканчивается и файл закрывается.

Блок подготовки задаёт информацию в переменных Stroka1 и Stroka2, согласно конфигурации Cnf, а если информация из файла конфигурации иная, чем ожидалась, то программы делает аварийный выход. Для реализации данного алгоритма применим оператор Select Case.

Рисунок 4- Блок-схема выбора значений строк сообщений.
Рисунок 4- Блок-схема выбора значений строк сообщений.

На рисунке 4 показаны действия программы при различных значениях конфигурации. Если Cnf="2" выбирается сообщение "Y=X^2"это символически показано, что готовятся строки сообщений для функции ввода при расчёте квадрата числа. Если Cnf="3" выбирается сообщение "Y=X^3"-это готовятся строки сообщений для функции ввода при расчёте куба числа. А вот если Cnf ="?" что-то иное, то происходит переход на "Аварийный выход!".

Рисунок 2- Г) программа №4. Здесь программный код заключительной части программного кода. Здесь производится расчёт по формуле, согласно конфигурации Cnf. Выбор производится с помощью оператора If....... Then. Всё в программном коде разъяснено в комментариях.

После ввода кода программы по всем четырём частям рисунка 2 можно приступать к испытанию программы:

Результаты испытаний в галереи рисунка 5. После запуска программы если файл конфигурации отсутствует, то он создаётся программой и устанавливается значение "2" (по умолчанию). Затем нужно найти созданный программой файл "PRG4.cfg" и с помощью программы "Блокнот" заменяем в нём "2" на "3". Опять запускаем программу и смотрим результаты её работы. Далее изменяем в файле конфигурации "3" на "4" и получаем при запуске программы результат -"Аварийный выход" из программы.

Если у ВАС всё получилось как у меня (рисунок 5), то ЦЕЛЬ достигнута, поздравляю!

Задание:

У программы № 4 Добавить конфигурацию -"4", т.е. добавить ветку для расчёта "функции Y=X^4".

Пока всё! Продолжение следует ....путь ещё не пройден!!!

Жду решений!,(умаю, что это будет не сложно) комментариев!!!