Programming C++Builder How to use an ini file in C++Builder
Notice: Undefined variable: relatedArticlesCount in /home/wwwroot/codeback.net/plugins/content/tags.php on line 149

What is ini file?

The ini file is very useful in case when you need to store some configuration and retrieve them back to you programs. An ini file could save the information group by a logic function, call it "section". In the section, all detail data could be saved as a format of "keyname=value". Keyname means the name of a specify thing you want to store while value, that is, the value of this thing.

Let us see an example of win.ini of windows 2k under the winnt folder.

; for 16-bit app support
[fonts]
[extensions]
[mci extensions]
[files]
[Mail]
MAPI=1
[MCI Extensions.BAK]
asf=MPEGVideo
asx=MPEGVideo
ivf=MPEGVideo
m3u=MPEGVideo
mp2v=MPEGVideo
mp3=MPEGVideo
mpv2=MPEGVideo
wax=MPEGVideo
wm=MPEGVideo
wma=MPEGVideo
wmv=MPEGVideo
wvx=MPEGVideo
wmp=MPEGVideo2
wmx=MPEGVideo2

Here the [fonts],[extensions],[mci extensions],[files],[Mail],[MCI Extensions.BAK] are all the sections. While these lines:
asf=MPEGVideo
asx=MPEGVideo
ivf=MPEGVideo
are stored as an form of "name=value", so it is just the detail information.

In C++Builder, TIniFile let you to operate an ini file easily. Take an example of reading and writing configuration information of a from from and to an ini file. Create a new project in your c++builder enviroment. Add the following codes in the form's constructor and in the OnClose event handler.

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
   TIniFile *ini;
   ini = new TIniFile(ExtractFilePath(Application->ExeName) + ".ini");
   ini->WriteInteger("myForm", "Top", this->Top);
   ini->WriteInteger("myForm", "Left", this->Left);
   ini->WriteInteger("myForm", "Width", this->Width);
   ini->WriteInteger("myForm", "Height", this->Height);
   ini->WriteString ("myForm", "Caption", "My Form's Caption Could be Stored");
   ini->WriteBool("myForm", "InitMax", WindowState == wsMaximized);
   delete ini;
}

__fastcall TForm1::TForm1(TComponent *Owner) : TForm(Owner)

{
   TIniFile *ini;
   ini = new TIniFile(ExtractFilePath(Application->ExeName) + ".ini");
   Top = ini->ReadInteger("myForm", "Top", 50);
   Left = ini->ReadInteger( "myForm", "Left", 50);
   Top = ini->ReadInteger("myForm", "Width", 800);
   Left = ini->ReadInteger( "myForm", "Height", 600);
   Caption = ini->ReadString( "myForm", "Caption", "myForm" );
   ini->ReadBool("myForm", "InitMax", false ) ? WindowState = wsMaximized : WindowState = wsNormal;
   delete ini;
}

Run you program, then terminate it, open the file under the root folder of your project, you would found the ini file has been showed as the following:

[myForm]
Top=243
Left=202
Width=800
Height=600
Caption=My Form's Caption Could be Stored

Note: to test this code, you need add the "include " in the head.
InitMax=0


Add comment


Security code
Refresh

Programming - C++Builder