C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с Ini-файлами  (Прочитано 2307 раз)
LEXONNN
Участник


Сказали спасибо: +0/-1
Offline

Сообщений: 70


Работа с Ini-файлами
« : 22 Май 2013, 21:32:43 »

В чем суть вопроса: как работать с ини файлами на одной форме я разобрался.
Пример: у меня есть две формы: одна - главная, вторая - форма с параметрами откуда все записывается в ини файл.
Вопрос: как мне сделать загрузку с ини файла только когда создалась первая форма, ведь файл создается только когда активировалась вторая форма. Куда мне написать эти все команды что бы я мог получить доступ к ини с любой формы? (Я думаю что суть вопроса выложил). Помогите.
Записан
OVE
Участник


Сказали спасибо: +67/-0
Offline

Сообщений: 72


Re: Работа с Ini-файлами
« Ответ #1 : 22 Май 2013, 23:14:53 »

А что мешает прочитать ini-файл при создании главной формы, а если на момент создания главной формы ini-файл не существует, то брать значения "по умолчанию".
Записан
S0mbre
Глобальный модератор


Сказали спасибо: +1113/-22
Offline

Сообщений: 2132

S0mbre


Re: Работа с Ini-файлами
« Ответ #2 : 23 Май 2013, 10:02:38 »

Элементарно. Заведи указатель TIniFile* в заголовочном файле главной формы (в классе или как внешнюю переменную) и создавай файл при создании главной формы. Для других форм файл будет доступен, если указатель объявлен в секции public класса главной формы либо как внешний (extern). Либо же вообще создавай файл до создания всех форм (в исходнике проекта, до Application->CreateForm).
Записан
excellion44
Участник


Сказали спасибо: +10/-9
Offline

Сообщений: 275


Re: Работа с Ini-файлами
« Ответ #3 : 24 Май 2013, 16:33:30 »

да все очень просто!

Код:
#include "IniFiles.hpp"

AnsiString Patch = ExtractFilePath(ParamStr(0));  // записываем путь где лежит наш exe в переменную Patch так чтоб небыло ошибок
TIniFile *Ini = new TIniFile (Patch+"config.ini"); //создаем ини

String mystring  = Ini->ReadString("strings","MyString","Hello World"); // читаем строку  MyString в ини файле если строка не найдена то по умолчанию ставим Hello World


что бы получить данные из любой формы пропиши в заголовке каждой формы
Код:
#include "IniFiles.hpp"
AnsiString Patch = ExtractFilePath(ParamStr(0));
TIniFile *Ini = new TIniFile (Patch+"config.ini");

ну или как предложил товарищ S0mbre
« Последнее редактирование: 24 Май 2013, 16:41:16 от excellion44 » Записан
LEXONNN
Участник


Сказали спасибо: +0/-1
Offline

Сообщений: 70


Re: Работа с Ini-файлами
« Ответ #4 : 24 Май 2013, 16:47:00 »

Спасибо все за ответы, попробую так.
Записан
LEXONNN
Участник


Сказали спасибо: +0/-1
Offline

Сообщений: 70


Re: Работа с Ini-файлами
« Ответ #5 : 25 Май 2013, 17:28:40 »

что то с радио батонами запара, помогите! данные записываются а читаются не верно где ошибка?
чтения, радио 1 чекед поставил тру, даже если фолс то не верно все равно читает, как верно?
Код
setting->RadioButton1->Checked = Ini->ReadBool("Radio","RadioButton1",setting->RadioButton1->Checked);
setting->RadioButton1->Checked = Ini->ReadBool("Radio","RadioButton2",setting->RadioButton2->Checked);
 
запись
Код
Ini->WriteBool("Radio","RadioButton1",RadioButton1->Checked);
Ini->WriteBool("Radio","RadioButton2",RadioButton2->Checked);
 
Записан
S0mbre
Глобальный модератор


Сказали спасибо: +1113/-22
Offline

Сообщений: 2132

S0mbre


Re: Работа с Ini-файлами
« Ответ #6 : 27 Май 2013, 07:03:09 »

Что именно "неверно" читается? Покажи INI файл.
И еще. В одном месте у тебя
Код
setting->RadioButton1->Checked
 
т.е. как бы кнопки располагаются на форме под именем setting. А в другом (запись):
Код
RadioButton1->Checked
 
т.е. кнопки на текущей форме. Это так и есть? Т.е. на самом деле запись на форме setting, а чтение с другой формы?
Записан
LEXONNN
Участник


Сказали спасибо: +0/-1
Offline

Сообщений: 70


Re: Работа с Ini-файлами
« Ответ #7 : 27 Май 2013, 19:49:53 »

да именно так, на форме сеттіг запись а чтения з другой формы
Ини файл:
Код
[CheckBoxes]
CheckBox1=1
CheckBox2=1
[Radio]
RadioButton1=0
RadioButton2=1
 
вот чек бокс нормально читается и пишется а радио точно такой код не хочет.
Записан
LEXONNN
Участник


Сказали спасибо: +0/-1
Offline

Сообщений: 70


« Ответ #8 : 28 Май 2013, 00:01:19 »

все я нашел ошибку) всего одна цифра) я присваивал одному и тому же радиобаттону)
Код
setting->RadioButton1->Checked = Ini->ReadBool("Radio","RadioButton1",setting->RadioButton1->Checked);
setting->RadioButton1->Checked = Ini->ReadBool("Radio","RadioButton2",setting->RadioButton2->Checked);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.141 секунд. Запросов: 21.