23 / 15 / 0
Регистрация: 16.11.2009
Сообщений: 332
|
|
1 | |
Сохранение настроек программы в *ini файл.29.12.2009, 20:53. Показов 33017. Ответов 27
Метки нет (Все метки)
0
|
29.12.2009, 20:53 | |
Ответы с готовыми решениями:
27
Сохранение настроек в INI Сохранение настроек в Ini из ComboBox. Сохранение положения компонента на форме (Сохранение параметра в Ini-файл) Сохранение настроек в ini-файл |
1702 / 898 / 207
Регистрация: 25.11.2009
Сообщений: 1,847
|
|
29.12.2009, 20:59 | 2 |
Сообщение было отмечено как решение
Решениенашёл на одном форуме
Сохраняем настройки в INI-файлах
Большинство программистов сталкиваются с проблемой сохранения настроек своей программы, но сегодня мы решим эту проблему. Мы научимся работать с ini файлами. Еще одним способом сохранять настройки является реестр, но его лучше не изменять, да и работать с ним немного сложнее. Итак, ini-файл имеет простую и понятную структуру : [Секция1] Идентификатор1 = Значение1 Идентификатор2 = Значение2 [Секция2] Идентификатор1 = Значение1 Для использования ini-файлов, в C++Builder предусмотрен модуль IniFiles , его мы и подключаем: #include IniFiles.hpp Далее, нужно создать обьект класса TIniFile, назовем его Ini. После TForm1 *Form1; пишем: TIniFile *Ini = new TIniFile("c:/options.ini"); значения сохраняет на диске С: в файл options.ini . После этого, на форму кинем две кнопки (TButton) и два Эдита (TEdit). Мы будем сохранять текст Эдитов в ini-файл, а потом загружать его. Пишем обработчик события нажатия кнопки Button1. Она будет сохранять текст Эдитов в наш options.ini void __fastcall TForm1::Button1Click(TObject *Sender) {{ Ini->WriteString("Edits","Edit1",Edit1->Text); Ini->WriteString("Edits","Edit2",Edit2->Text); } Так, как мы работаем с текстом, мы использовали метод класса WriteString, если нам нужно было бы работать с числами, мы бы написали WriteInteger . Где параметры для этой функции: "Edits" - имя секции; "Edit1" - указатель на объект; "Edit1->Text" - строка, которую мы сохраняем (текст эдита). Далее, рассмотрим пример загрузки параметров с ini , пишем обработчик события для второй кнопки: void __fastcall TForm1::Button2Click(TObject *Sender) { Edit1->Text = Ini->ReadString("Edits","Edit1","Def"); Edit2->Text = Ini->ReadString("Edits","Edit2","Def"); } Здесь используем функцию чтения :ReadString , где: "Edits" - секция из которая нам надо ; "Edit1" - объект для которого загружаем строку; "Def" - эта строка заполняет Эдит, если значение ini не найдено; Этот маленький пример показывает как можно лекго загружать и сохранять параметры Вашей программы в INI-файлы.
10
|
29.12.2009, 23:52 | 4 | ||||||||||
1
|
Маэстро
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
|
|
30.12.2009, 00:40 | 5 |
BARS1991, Посмотрите в мою тему - INI Файл и Стиль Шрифта - как сохранить в INI стиль шрифта. Там правда про шрифт, но принцип сохранился, разве что переменные поменять на свои и нужные значения сохранять.
3
|
23 / 15 / 0
Регистрация: 16.11.2009
Сообщений: 332
|
|
30.12.2009, 09:02 [ТС] | 6 |
Спасибо
0
|
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,060
|
|
14.02.2011, 23:48 | 7 |
Добрый день!
Вот так написал команду, после запуска программы команда из второй строки меняет свойство Caption в ButtonCancel на текст свойства Hint, если поменять строки кода местами тогда наоборот Hint в Caption. И еще, не разумлю чем заменить WriteString для записи в ini файл свойство Button-Enabled . 1. Ini->WriteString("Buttons","ButtonCancel",ButtonCancel->Hint); 2. Ini->WriteString("Buttons","ButtonCancel",ButtonCancel->Caption);
0
|
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,060
|
|
16.02.2011, 09:22 | 9 |
0
|
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,060
|
|
16.02.2011, 10:38 | 11 |
Я торможу.
где у меня ошибка? 1. Ini->WriteInteger("Forms","Form",Form->Color);записываем 2. Form->Color = Ini->ReadInteger("Forms","Form","Def"); читаем
0
|
11 / 11 / 1
Регистрация: 27.12.2010
Сообщений: 39
|
||||||
16.02.2011, 15:54 | 12 | |||||
когда читаем ,то
1
|
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,060
|
|
16.02.2011, 18:26 | 14 |
Теперь вот такую ошибку выбает, и после пуска показывает только черный цвет.
Project.cpp(97): W8018 Assigning int to TColor
0
|
11 / 11 / 1
Регистрация: 27.12.2010
Сообщений: 39
|
|
16.02.2011, 19:07 | 15 |
не зна,свой пример проверял,работает.
в методе чтения ReadInteger первые два параметра - строки,а третий типа int. так должно быть
1
|
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,060
|
|
16.02.2011, 20:02 | 16 |
Всем спасибо! все работает.
Добавлено через 6 минут А с этим вопросом не поможете?
0
|
11 / 11 / 1
Регистрация: 27.12.2010
Сообщений: 39
|
|
16.02.2011, 20:13 | 17 |
я вопроса не понял,уже устал к вечеру))попробуй как -нибедь объснить ,что требуется?)
0
|
Заблокирован
|
||||||
16.02.2011, 20:32 | 18 | |||||
Да ты меняй не в ини, а в программе, а в ини записывай результат.
Добавлено через 3 минуты и лучше писать в ини (строковые) переменные, а не значения :
Добавлено через 12 минут Ну и вот представь, программа на n-языках (иностранных), так что - делать n-файлов настройки, если там имеются строковые значения? а так значания хранишь в отдельных языковых файлах, а в файл настроек сохраняешь только переменную.
2
|
24 / 2 / 1
Регистрация: 01.03.2011
Сообщений: 109
|
|
03.03.2011, 16:35 | 19 |
НАРОД, ПОМОГИТЕ ПОЖАЛУЙСТА! Как тоже самое сделать не через ini а через xml файл!!!! 3 день ни чего найти не могу!!!!
0
|
Заблокирован
|
|
03.03.2011, 17:17 | 20 |
Сообщение было отмечено как решение
Решение
плохо искал - инфы навалом, только искать надо не "как сохранить настройки", а "как работать с XML"
http://www.functionx.com/cppbu... sson01.htm http://www.functionx.com/cppbu... sson02.htm http://www.functionx.com/cppbu... sson03.htm http://wiki.lazarus.freepascal.org/XML_Tutorial/ru
3
|
03.03.2011, 17:17 | |
03.03.2011, 17:17 | |
Помогаю со студенческими работами здесь
20
INI - Загрузка и сохранение настроек Сохранение настроек в .ini - дозапись файла Сохранение настроек в .ini в папке Windows\System32 Пример сохранения настроек программы (ini) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |