Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2012, 23:51   #1
redenemy
Пользователь
 
Регистрация: 18.05.2012
Сообщений: 19
По умолчанию OpenDialog проблема

Есть код:
Код:
void __fastcall TForm2::Label36Click(TObject *Sender)
{
        if(OpenDialog1->Execute())
        {
                AnsiString str = OpenDialog1->FileName;
                Edit7->Text = str;
        }
}
Если я выберу какой-нибудь файл, а дальше попробую сохранить:

Код:
TIniFile *iniFile = new TIniFile("program_confg.ini");
iniFile->WriteInteger("params", "type", ComboBox1->ItemIndex); 
....
То на строку
Код:
iniFile->WriteInteger("params", "type", ComboBox1->ItemIndex);
Он выведет ошибку: EIniFileException: 'Unable to write to..'.
Если я уберу строку
Код:
iniFile->WriteInteger("params", "type", ComboBox1->ItemIndex);
То будет ругаться на следующую за ней (там тоже сохранение).
Если же я введу в Edit7 вручную то, что выдал OpenDialog - все ок, все сохранится. Дак в чем же все-таки проблема ?
redenemy вне форума Ответить с цитированием
Старый 19.05.2012, 23:55   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А почему OpenDialog а не SaveDialog? Ты же сохранять собрался...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.05.2012, 00:02   #3
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Open/SaveDilaog() меняют текущий каталог, а, следовательно и место, где будет ожидаться файл "program_confg.ini". Я бы советовал указывать полный путь к файлу в этой строке:

Код:
TIniFile *iniFile = new TIniFile("program_confg.ini");
(Естественно, строить его лучше от пути запуска приложения. Ну или хранить где-то в легкодоступном месте).
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 20.05.2012, 00:22   #4
redenemy
Пользователь
 
Регистрация: 18.05.2012
Сообщений: 19
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
Open/SaveDilaog() меняют текущий каталог, а, следовательно и место, где будет ожидаться файл "program_confg.ini". Я бы советовал указывать полный путь к файлу в этой строке:

Код:
TIniFile *iniFile = new TIniFile("program_confg.ini");
(Естественно, строить его лучше от пути запуска приложения. Ну или хранить где-то в легкодоступном месте).
Блин! Если бы не эта подсказка, я не знаю сколько бы я еще копался. Спасибо! А можно сделать так чтобы путь не менялся при открытии OpenDialog-ом ?
redenemy вне форума Ответить с цитированием
Старый 20.05.2012, 00:36   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Это фича винды, не помню, можно её как-то обойти, или нет.. Ещё можно запоминать текущий, а потом восстанавливать. Но я бы не советовал.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 20.05.2012 в 00:40.
veniside вне форума Ответить с цитированием
Старый 20.05.2012, 00:45   #6
redenemy
Пользователь
 
Регистрация: 18.05.2012
Сообщений: 19
По умолчанию

Спасибо. Тему можно закрыть
redenemy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с OpenDialog!!!! Екатерина_21 C++ Builder 3 09.10.2011 15:12
Проблема с иконкой в трее и OpenDialog Dop Общие вопросы Delphi 2 05.08.2011 14:48
Проблема OpenDialog и ifstream yuriyua Помощь студентам 1 14.10.2009 19:20
OpenDialog Андрей= Компоненты Delphi 6 03.05.2008 15:06
OpenDialog.Options:=OpenDialog.Options+[ofAllowMultiSelect]; necky Компоненты Delphi 2 11.08.2007 12:53