Страница 1 из 1

VBA. Хранение массивов в проекте VBA

Добавлено: 23 июл 2007, 21:58
Avsha
Требуется хранить где-нибудь в проекте VBA текстовые массивы (список ПЭВМ, перечень текстовых фильтров и т.д.)

Всегда хранил такие массивы непосредственно в коде программ. Вот захотелось усовершенствовать это дело.
Думаю использовать для таких исходных данных отдельный модуль (Mod_Info), чтобы при изменении этих данных уже прямо "идти" в него и только в нем править.

Возможно, имеет смысл сделать некоторый конфигуратор таких массивов, например, с помощью дополнительной формы?
Какие могут быть ещё варианты хранения массивов в проекте VBA?

Re: VBA. Хранение массивов в проекте VBA

Добавлено: 23 июл 2007, 22:51
Aent
Avsha, если есть программный доступ к коду проекта в некоторых случаях
удобнее хранить большие текстовые массивы как строки комментариев в одноимённых с массивом модулях.
Вариант - внедрённый в офисный документ ini (xml) файл.
Но это всё актуально когда массивы действительно большие и их удобно править текстовым редактором или макросом через VBE.
Кстати, полезно помнить, что VBE поддерживает до 1024 символов в строке...
В последнее время храню все настройки для VB/VBA проектов в базе SQLITE.
Правда, это влечёт за собой одну (нерегистрируемую) DLL в каталоге макроса и файл
с базой в нём же. Зато нормальная база, отвязанная от всего. Опять же, SELECT сделать можно ;)
Дальнейшие спекуляции на тему зависят от сути Ваших задач (проблем) ;)

Re: VBA. Хранение массивов в проекте VBA

Добавлено: 24 июл 2007, 10:20
Avsha
Aent, спасибо за советы
большие текстовые массивы как строки комментариев в одноимённых с массивом модулях
Массивы небольшие по 10-20 элементов, всего штук 5-6 массивов.
Они меняются нечасто, но при изменении желательно идти в одно место, если в коде VBA.
Наверно мне незачем их писать в комментарии, просто явным присвоением наверно введу.

Вариант - внедрённый в офисный документ ini (xml) файл.
Про него я думал, но я умею только отдельный, лежащий неподалеку на диске.
Ведь оперативность изменений - мгновенная и гибкая.

Отсюда вопросы:
1. Есть ли какой стандартый (классический) формат у таких ini/xml-файлов, чтобы хранить текстовые массивы?
2. Внедрять в офисный документ, это как?

Re: VBA. Хранение массивов в проекте VBA

Добавлено: 24 июл 2007, 13:29
Aent
&quot писал(а): 1. Есть ли какой стандартый (классический) формат у таких ini/xml-файлов, чтобы хранить текстовые массивы?
2. Внедрять в офисный документ, это как?

1. Нет
2. Я имел в виду ведрение через OleObjects. Но для небольших массивов это не имеет смысла.
А почему бы вам не хранить данные в самом офисном документе ?
В листе Excel или в переменных (Variables) Word.
Можно так же использовать пользовательские Property документа.

Re: VBA. Хранение массивов в проекте VBA

Добавлено: 24 июл 2007, 15:04
Avsha
Принял для себя решение хранить в отдельном ini-файле, формат его придумаю, выложу на обсуждение...
Потому что удобнее и оперативнее изменять исходные данные и не надо будет сохранять сам проект.
Можно будет скомпилировать потом форму при желании в самостоятельный EXE-шник.
А почему бы вам не хранить данные в самом офисном документе ?
В листе Excel или в переменных (Variables) Word.
Я делаю форму для другого приложения с VBA, а там подходящих объектов нет и они не удобны :rolleyes:

Re: VBA. Хранение массивов в проекте VBA

Добавлено: 25 июл 2007, 11:05
Avsha
хранить в отдельном ini-файле, формат его придумаю, выложу на обсуждение...

Код: Выделить всё

# это комментарий - удобно выводить из работы но не удалять значения
[Nodes]
Node_01
Node_02
Node_03
#Node_04
Node_05
Node_06
[Nodes_End]
[Filters]
расчет
задание
ввод
ошибка
тревога
график
[Filters_End]
[Users]
Gosha
Misha
Lena
Vanja
[Users_End]
....