создать новую тему раскрыть все
 
Был файл AbilityCash.ini с настройками в папке с программой.
Решил поэкспериментировать с чистого листа.
Очистил файл (исходный переписал в другое место), запустил программу, сделал настройки, сохранил в новый файл базы (.cash).
Файл AbilityCash.ini остался пустым.
Удалил ветку программы в реестре, снова запустил - настройки сбросились, но после очередного сохранения в новом файле базы - программа опять лезет в реестр, а файл .ini остается пустым.
В чем тут дело?. Как заставить программу использовать файл .ini?
 
...у меня все работает.
 
1. Проверьте версию программы. Возможность хранить настройки в ini-файле существовала не всегда. В текущей 232-й сборке эта возможность есть и точно работает.
 
2. Сохранять новый файл данных (.cash) нет никакого смысла. На хранение настроек программы это не оказывает никакого влияния.
 
3. Программа при запуске всегда проверяет наличие AbilityCash.ini в своей папке. Вне зависимости от того, есть что-то в реестре или нет. Поэтому и особого смысла чистить реестр тоже нет.
 
А вот как именно вы запускали AbilityCash? Двойным кликом по самой программе или по файлу данных? Если по файлу данных, то запущена будет не тот экземпляр программы, который вы имели в виду, а тот, который был установлен на компьютер. Он увидит, что в папке "C:\Program files\AbilityCash" нет ini-файла и, конечно же, сохранит настройки в реестре.
 
Может возможность хранить настройки в ini-файле существовала и не всегда, но
Алгоритм настройки. [Dervish 06/05/2006 01:49]
1. Втыкаем флешку в порт. На моем компьютере появился новый сменный диск для флеш-карты с буквой "F:".
2. Создаю на флешке папку для программы и базы данных. Пусть она будет называться "F:\Cash".
3. Копирую в эту папку саму программу "AbilityCash.exe" и файл данных "data.acb".
4. Программа не будет обращаться к реестру только если она увидит в своей папке файл настроек. Его нужно создать вручную. Создаем в этой папке пустой файл "AbilityCash.ini".
и т.д. Как видите 2006г. и файл .acb.
Сколько помню - всегда пользовался и работало.
А тут случайно обнаружил и, подозреваю, - только думал, что работало. Всегда считал, что может быть только так: есть .ini - нет следов в реестре, нет .ini - настройки пишутся в реестр.
 
У меня конечно 232-я и Win 8 9200 Ent. x64.
Все четко работает и не думаю, что недоразумение из-за этой новизны. Может туплю тривиально.
 
Что значит
2. Сохранять новый файл данных (.cash) нет никакого смысла. На хранение настроек программы это не оказывает никакого влияния.

А без создания файла данных программу и не закроешь, не потеряв настроек. И ГДЕ тогда настройки будут храниться? Неужели состояние ВСЕХ галочек, положение столбцов на закладке Операции и все остальные настройки хранится исключительно в файле .ini (или реестре, если этого файла нет).
 
Прямо сейчас проверяю и описываю.
1. Где-нибудь на задворках последнего раздела или на флешке создаем новую папку, допустим, AC232. Туда копируем AbilityCash.exe и создаем пустой AbilityCash.ini. Я не использую инсталлятора, поэтому нет никаких папок C:\Program files\AbilityCash или C:\Program files (x86)\AbilityCash. Запускаю, конечно, .exe, поскольку больше пока и запускать нечего.
Предварительно, в реестре грохаем ветку AbilitySoft для чистоты эксперимента.
 
Ха-ха-ха. Допер!
Я тут переоптимизировал и переименовал .exe в AbilityCash 2.1.232.exe (ну, чтобы знать какой версией пользуюсь), но .ini-файл не переименовывал (т.е. создал пустой AbilityCash.ini).
Сейчас вернул исходное имя AbilityCash.exe и проверил - порядок, настройки пишутся в .ini !!!
 
Но, допишу, чтобы лучше понять, что куда сохраняется.
2. Настраиваем программу, например:
Файл->Настройки файла данных. Тут проставляем галочки где нужно.
Сервис->Настройки программы. Тут тоже по закладкам проставляем/снимаем нужные галочки.
Наконец, Просмотр->Страницы. Тут выводим из тени закладки Классификаторы и Бюджет.
3. Нагло закрываем программу. Она, конечно, предлагает проделанную работу сохранить: "Желаете сохранить изменения?". Указываем ту самую папку с программой и .ini-файлом и именуем ФАЙЛ ДАННЫХ, например, 1.cash. Программа закрывается, создается файл 1.cash и наполняется файл .ini.
А вот, когда .exe был переименован - .ini-файл оставался пустым и создавалась ветка в реестре.
 
Полагаю, программа не ДОЛЖНА смотреть на свое имя, а только проверять наличие рядом файла AbilityCash.ini !
 
А вообще, приватность - важная штука, и надо четко понимать, где какие следы остаются и что где хранится!
 

 
3. Программа при запуске всегда проверяет наличие AbilityCash.ini в своей папке. Вне зависимости от того, есть что-то в реестре или нет. Поэтому и особого смысла чистить реестр тоже нет.
 
А вот как именно вы запускали AbilityCash? Двойным кликом по самой программе или по файлу данных? Если по файлу данных, то запущена будет не тот экземпляр программы, который вы имели в виду, а тот, который был установлен на компьютер. Он увидит, что в папке "C:\Program files\AbilityCash" нет ini-файла и, конечно же, сохранит настройки в реестре.
Может и не всегда
свернуть/развернуть ветвь Замечание [zeotcg 31/08/2012 22:46] # написать ответ
 
Последние два абзаца из ответа [Dervish 31/08/2012 18:07] затесались случайно.
 
Ну, и итоговый вопрос к нему: Это правильно понимать, что структура и цифры - исключительно в файле .cash, а галочки, экраны и прочее - исключительно в .ini (при его наличии) ? Только ТРИ файла: .exe, .cash, .ini и больше никаких следов ?
Ну, при условии, что отключено резервное копирование (я и не пользуюсь - застраховаться можно и более безопасными способами).
свернуть/развернуть ветвь Замечание 2 [zeotcg 31/08/2012 23:26] # написать ответ
 
Черт .. сколько лазил по форуму, а это не попадалось:
Заметка на использование *.ini [Valeriu 06/05/2006 09:53]
Для тех кто изменил первоначальное имя *.ехе с "AbilityCash.exe" (к примеру у меня "AbilityCash 2 Alpha (Build 207).exe") - имя *.ini файла должно совпадать с именем *.ехе; в противном случае, программа будет обращатся к реестру.
Удачи.

Совершенно верное замечание. (+) [Dervish 06/05/2006 10:18]
Я просто не думал, что кто-то будет переназывать программу другим именем файла. Действительно, название ini-файла должно совпадать с названием exe-файла.

 
Выходит, наступил на старые грабли.
Но, почему нельзя просто проверять программе наличие AbilityCash.ini рядом, без всякого сопоставления имен?
свернуть/развернуть ветвь Об именах. [Dervish 31/08/2012 23:40] # написать ответ
 
Но, почему нельзя просто проверять программе наличие AbilityCash.ini рядом, без всякого сопоставления имен?

Я пытался сделать универсальный код, который будет работать в возможных других программах. Потому и привязался к названию exe-шника.
свернуть/развернуть ветвь О следах. [Dervish 31/08/2012 23:48] # написать ответ
 
А вообще, приватность - важная штука, и надо четко понимать, где какие следы остаются и что где хранится!

 
Все довольно просто. В реестре (или .ini-файле) хранятся:
 
1. Всё, что находится в диалоге настроек программы (пункт "Настройки программы..." из меню "Сервис" или F9).
 
2. Данные о положении окна программы (развернуто, свернуто или точные координаты).
 
3. Список последних открытых файлов (меню "Файл", подменю "Базы данных").
 
Все остальное хранится в самом файле данных. В это самое "все остальное" входят:
 
1. Все настройки закладок, включая значения фильтров, сортировки, ширину столбцов...
 
2. Собственно, список страниц (меню "Просмотр", пункт "Страницы...").
 
3. Всё содержимое диалога "Настройки файла данных" (вызывается из меню "Файл").
 
Вот как-то так. Надеюсь, это поможет.