Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ini-файл

12K
14 октября 2005 года
ruan
5 / / 11.10.2005
Привет!Столкнулся с такой трудностью.Мне надо сохранить настройки ChekListBox в ini-файл.Как можно организовать цикл чтоб сохранить все Итемы с ChekListBox в файл и потом как сделать такой же цикл чтоб при запуске программы с ини файла все эти Итемы загрузить в ChekListBox.Не хотелось бы тупо пребирать ини файл пока не встретится нужная секция,потом просматриваем построчно пока не конец файла или другая секция.Порациональнее ничего нет для такого случая?
362
14 октября 2005 года
_kolyan
339 / / 03.12.2002
Предлагаю способ, сам делал подобным образом:

Создаешь StringList
Перебираешь циклом CheckListBox
Для каждого элемента добавляешь в StringList строку "1" или "0" (Checked/неChecked)
Потом в ини-файл сохраняешь StringList->DelimitedText как одну строку WriteString
Удаляешь StringList

Вот и все

Загрузка обратным образом -
ReadString в DelimitedText
потом цикл по срокам
12K
16 октября 2005 года
CtstdX
10 / / 10.10.2005
void __fastcall TForm1::LoadClick(TObject *Sender)
{
TIniFile* file=new TIniFile("prog.ini");
TStringList* lst=new TStringList;
file->ReadSectionValues("Size",lst);
Top=StrToInt(lst->Values["Top"]);
Left=StrToInt(lst->Values["Left"]);
Width=StrToInt(lst->Values["Width"]);
Height=StrToInt(lst->Values["Height"]);
delete lst,file;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SaveClick(TObject *Sender)
{
TIniFile* file=new TIniFile("prog.ini");
file->WriteString("Size","Top",Top);
file->WriteString("Size","Left",Left);
file->WriteString("Size","Height",Height);
file->WriteString("Size","Width",Width);
delete file;
}

Вот нашол подобное на сайтеПЕРВЫЕ ШАГИ
362
17 октября 2005 года
_kolyan
339 / / 03.12.2002
Цитата:
Originally posted by CtstdX
void __fastcall TForm1::LoadClick(TObject *Sender)
{
TIniFile* file=new TIniFile("prog.ini");
TStringList* lst=new TStringList;
file->ReadSectionValues("Size",lst);
Top=StrToInt(lst->Values["Top"]);
Left=StrToInt(lst->Values["Left"]);
Width=StrToInt(lst->Values["Width"]);
Height=StrToInt(lst->Values["Height"]);
delete lst,file;
}



Не совсем понятно, зачем тут нужен промежуточный стринглист. Видимо потому что это только пример ипользования функции ReadSectionValues, а не практический совет. Все что написано эквивалентно обычному:

 
Код:
TIniFile* file=new TIniFile("prog.ini");
Top=file->ReadInteger("Size", "Top", 0);
Left=file->ReadInteger("Size", "Left", 0);
Width=file->ReadInteger("Size", "Width", 0);
Height=file->ReadInteger("Size", "Height", 0);
delete file;
12K
18 октября 2005 года
ruan
5 / / 11.10.2005
Спасибо за внимание к теме.Проблема решена.Всем удачи!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог