Cinchoo – Saving INI file, Part 3

ChoIniDocument

In this section, I’ll talk about on how to create INI document programmatically and save them. ChoIniDocument class provides abundant set of members helps you to create and add different types of   INI elements to the document.  Below are the different sections of INI document

  • ChoIniDocument – An INI document, contains heading ChoIniCommentNodes followed by series ChoIniSectionNodes, ChoIncludeIniSectionNodes, ChoIniCommentNodes or ChoIniNewLineNodes
  • ChoIniCommentNode – An INI comment node
  • ChoIniNewLineNode – An INI new line node
  • ChoIniSectionNode – An INI section node, may contain a Inline ChoIniCommentNode followed by series of ChoIniNewLineNodes, ChoIniCommentNodes, ChoIniNameValueNodes
  • ChoIniNameValueNode – An INI name value node
  • ChoIniIncludeFileNode – INI Include file node, it contains the same set of elements as ChoIniDocument contains.

Here I’ll show you on how to create a sample INI file programmatically

private static void CreateINIFile()
{
    ChoIniDocument.Clean(@"C:\Temp\TestIni1.ini");
    using (ChoIniDocument iniDocument = ChoIniDocument.Load(@"C:\Temp\TestIni1.ini"))
    {
        //Create INI document level comments
        iniDocument.AddHeadingComment("This is a test INI file.");
        iniDocument.AddHeadingComment("To test its functionality.");
        iniDocument.AppendNewLine();

        //Create and add PRODUCT section
        ChoIniSectionNode section = iniDocument.AddSection("PRODUCT");

        //Create and add VERSION name value to PRODUCT section
        ChoIniNameValueNode versionNode = section.AddNameValueNode("VERSION", "1.002");

        //Create and add COMPANY name value node to PRODUCT section
        ChoIniNameValueNode companyNode = section.AddNameValueNode("COMPANY", "NAG Groups LLC");

        //Add a newline node
        section.AppendNewLine();

        //Create and add INI include node
        ChoIniIncludeFileNode iniIncludeFileNode = iniDocument.AddIniIncludeFileNode(@"C:\Temp\TestIncludeIni1.ini");

        //Create and add SOFTWARE section to included node
        ChoIniSectionNode softwareSection = iniIncludeFileNode.AddSection("SOFTWARE");

        //Create and add OS1 name value node to SOFTWARE section
        softwareSection.AddNameValueNode("OS1", "MAC");

        //Create and add OS2 name value node to SOFTWARE section
        softwareSection.AddNameValueNode("OS2", "Windows7");

        Console.WriteLine(iniDocument.ToString());

        iniDocument.Save();
    }
}

It creates the below two INI files as below

C:\Temp\TestIni1.ini

;This is a test INI file.
;To test its functionality.

[PRODUCT]
VERSION=1.002 ;Version Comment
COMAPNY=NAG Groups LLC ;Company node

[INCLUDE("C:\Temp\TestIncludeIni1.ini")]

C:\Temp\TestIncludeIni1.ini

[SOFTWARE]
OS1=MAC
OS2=Windows7
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s