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;
ini-файл
Привет!Столкнулся с такой трудностью.Мне надо сохранить настройки ChekListBox в ini-файл.Как можно организовать цикл чтоб сохранить все Итемы с ChekListBox в файл и потом как сделать такой же цикл чтоб при запуске программы с ини файла все эти Итемы загрузить в ChekListBox.Не хотелось бы тупо пребирать ини файл пока не встретится нужная секция,потом просматриваем построчно пока не конец файла или другая секция.Порациональнее ничего нет для такого случая?
Создаешь StringList
Перебираешь циклом CheckListBox
Для каждого элемента добавляешь в StringList строку "1" или "0" (Checked/неChecked)
Потом в ини-файл сохраняешь StringList->DelimitedText как одну строку WriteString
Удаляешь StringList
Вот и все
Загрузка обратным образом -
ReadString в DelimitedText
потом цикл по срокам
{
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;
}
Вот нашол подобное на сайтеПЕРВЫЕ ШАГИ
Цитата:
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;
}
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, а не практический совет. Все что написано эквивалентно обычному:
Код:
Спасибо за внимание к теме.Проблема решена.Всем удачи!