Тема: Регистр vs. файл с точки зрения производительности и вообще.

Переделываю (точнее, создаю заново) механизм сохранения настроек, положения и значения форм и т.д.
Короче говоря, задача -- кратковременное (в пределах сессии) хранение ряда коротких строковых или целых значений с умеренно частыми (пускай будет, для примера, два раза за одну любую команду) обращениями из форм и модулей программы + перезапись.
Что лучше использовать -- простейший текстовый файл для ввода/вывода или все писать в регистр?
"Лучше" -- значит быстрее и (чисто субъективно) грамотнее.
И то, и другое предполагается делать через VBA.CreateObject() и так далее.
Заранее спасибо.

Re: Регистр vs. файл с точки зрения производительности и вообще.

Лучше не через VBA.CreateObject(), а через Win API. Чисто субъективно, если в пределах сессии, то через ini-файл с помощью GetPrivateProfileStringA и WritePrivateProfileStringA. Только с правами доступа к папкам и файлам надо тщательнее.

Re: Регистр vs. файл с точки зрения производительности и вообще.

ЯТД, если вопрос именно в одной сессии, то можно, к примеру, объявить глобальную переменную и в нее как в список либо словарь (VB-шный!) засовывать данные. Поскольку все в памяти, чтение / запись должно выполняться быстрее.

Re: Регистр vs. файл с точки зрения производительности и вообще.

Если в одной сессии, то по рецепту kpblc.
Но если с перспективой и для универсальности - то в реестр, но в правильное место - HKCU, в ветку своего приложения. О быстроте доступа к реестру заботится OS, практически это то же, что и память. Во всяком случае - быстрее, чем в VB-шный слварь.
В INI-файлы (лежащие не где попало) - только редко изменяемые данные, которые позволено специально редактировать пользователю. Возможно - в INI-файл, лежащий рядом с DWG (если что-то сохранять для последующего использования).
Конечно, можно и в простой текстовый файл, но будет больше собственных затрат на его анализ.
С правами доступа к папкам и файлам - не просто тщательнее, а тщательнЕе.

Re: Регистр vs. файл с точки зрения производительности и вообще.

Всем спасибо -- благодаря вашим ответам я смог наконец определиться.
По поводу решений.
1. WinAPI -- пробовал. Скажу честно. Сломал мозг. Всякое через него (WinAPI, а не мозг) проделывал, в том числе эмулировал форму в виде тулбара с одной кнопкой закрытия (как панель Properties, и тоже перетаскивается мышью). Но работать с регистром не смог. Ну и Бог с ним.
2. Словарь и другое. Опасаюсь немного, потому что не совсем исчерпывающе понимаю, когда обнуляются словари, статические переменные, свойства и т.д. Сейчас у меня реализованы получение/запись текущего масштаба и мн. др. через Property:
<Module AltoInfo>

Dim varDefaultTextLayer
-------------------------------------------
Public Static Property Get DefaultTextLayer() As Variant
DefaultTextLayer = varDefaultTextLayer
End Property
Public Static Property Let DefaultTextLayer(ByVal vNewValue As Variant)
varDefaultTextLayer = vNewValue
End Property
--------------------------------------------
aoText.Layer = AltoInfo.DefaultTextLayer

Если вдруг вылезет Run-time ошибка -- оно обнуляется, вроде бы так. Не поручусь.
3. Регистр. Имел сомнения насчет производительности. Остановился на этом варианте. Пойду напишу библиотеку доступа.