Сегодня хочу предложить, на мой взгляд, очень полезную вещь: пакетное сохранение файлов (комплект). В свое время эта идея была предложена на форуме растра. В итоге (с версии 1.6 Rastr3) пользователи получили возможность создавать и редактировать пакеты файлов, которые представляют из себя набор рабочих файлов:
Все было бы ничего, если бы по умолчанию эти пакеты были бы архивами. Но после сохранения с расширением rsln пакет представляет из себя xml файл с указанием на файлы.
Хотя, отмечу, что из-под редактора можно сохранить пакет в архив, только вот обратного импорта из архива не предусмотрено.
Комплекс OpenSaveD, как раз, и должен решить следующие маленькие проблемы:
- автоматическое открытие/сохранение в пакет файлов и их шаблонов
- автоматическое определение шаблона по типу файла
- создание истории работы с файлами (*)
Тут стоит упомянуть про одно допущение (*). В Rastr есть механизм получения текущих рабочих файлов, но в Rastr3 не работает. Поэтому пока в программе не устранят эту ошибку, то работа с комплексом будет во многом сводится именно к истории последних файлов. Для версий Rasrt2 надо доработать комплекс с учетом работы механизма получения текущих файлов.
Итак, комплекс состоит из 5 файлов:
- Открыть по шаблону.rbs
- Сохранить по шаблону.rbs
- Сохранить пакет файлов.rbs
- Очистить историю последних файлов.rbs
- Экспорт файлов из пакета.rbs
Очищаем рабочую область в растре (Файлы — Новый — Очистить Все) для чистоты эксперимента
Используем макрос Открыть по шаблону.rbs
В диалоге Открыть можно выделять сразу несколько файлов, что удобно для загрузки нескольких файлов сразу. По умолчанию, в диалоге можно увидеть все форматы, которые поддерживаются в Rastr3.
После нажатия кнопки Открыть видим подключение файлов в программе
После открытия будет создан файл по адресу Мои документы — Rastrwin3 — opensaveopt.ini, который и отвечает за историю открытых файлов, представляет из себя текстовый файл с указанием текущего файла и текущего шаблона
Изменим данные в таблице Узлы (добавим 4 строку) в файле
и сохраним файлы через макрос Сохранить по шаблону.rbs
После очистки рабочей области удостоверимся в сохранении файлов, загрузим файлы заново
Теперь попробуем сохранить текущие файлы в пакет, воспользуемся макросом Сохранить пакет файлов.rbs
При этом в историю последних файлов (opensaveopt.ini) записался пакет вместо группы файлов
На диске файл представляет собой обычный zip архив c сохраненными файлами и шаблонами
Очистим рабочую область и попробуем открыть пакетный файл с помощью макроса Открыть по шаблону.rbs
Проверим результат
Введем изменения в таблицу Узлы (6 строка)
и сохраним с помощью макроса Сохранить по шаблону.rbs
Опять тестируем пакет: очищаем рабочую область, и загружаем пакет с помощью макроса Открыть по шаблону.rbs
Вроде, все пока работает. Теперь создадим файл контрольных величин (Файлы — Новый — контр-е величины.kpr), внесем информацию по КВ и сохраним через меню обычного сохранения как test1.kpr. Чтобы комплекс OpenSaveD знал о файле, он должен попасть в историю открытых файлов (opensaveopt.ini), поэтому воспользуемся макросом Открыть по шаблону.rbs
В результате файл opensaveopt.ini будет такой
Сохраняем новый пакет с помощью макроса Сохранить пакет файлов.rbs
И смотрим на диске сохраненный пакет
И напоследок:
- макрос Очистить историю последних файлов.rbs удаляет файл истории последних файлов (opensaveopt.ini), нужен для работы с новым набором файлов;
- макрос Экспорт файлов из пакета.rbs используется для выгрузки файлов из пакета и работы с ними напрямую.
Стоит упомянуть про наличие настроек в самих макросах:
Комплекс OpenSaveD одним файлом
Установка: кидаем папку из архива в Мои документы — Rastrwin3 — macro, выносим на панель инструментов по необходимости, доступны как обычные макросы в меню Расчеты — Выполнить — OpenSaveD
В общем, успехов в работе.. в новом-то году