Click here to Skip to main content
6,596,602 members and growing! (21,186 online)
Email Password   helpLost your password?
Languages » C# » PInvoke     Intermediate

An INI file handling class using C#

By BLaZiNiX

A C# class that exposes the INI file handling functions from Kernal32.dll
C#, Windows, .NET 1.0, Dev
Posted:14 Mar 2002
Views:237,172
Bookmarked:62 times
Announcements
Loading...
 
Search    
Advanced Search
Add to IE Search
printPrint   add Share
      Discuss Discuss   Broken Article?Report  
66 votes for this article.
Popularity: 7.67 Rating: 4.22 out of 5
1 vote, 1.9%
1
1 vote, 1.9%
2
1 vote, 1.9%
3
17 votes, 32.1%
4
33 votes, 62.3%
5

Introduction

I created a C# class Ini which exposes 2 functions from KERNEL32.dll. These functions are: WritePrivateProfileString and GetPrivateProfileString

Namespaces you will need: System.Runtime.InteropServices and System.Text

The Class

using System;
using System.Runtime.InteropServices;
using System.Text;

namespace Ini
{
    /// <summary>

    /// Create a New INI file to store or load data

    /// </summary>

    public class IniFile
    {
        public string path;

        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section,
            string key,string val,string filePath);
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section,
                 string key,string def, StringBuilder retVal,
            int size,string filePath);

        /// <summary>

        /// INIFile Constructor.

        /// </summary>

        /// <PARAM name="INIPath"></PARAM>

        public IniFile(string INIPath)
        {
            path = INIPath;
        }
        /// <summary>

        /// Write Data to the INI File

        /// </summary>

        /// <PARAM name="Section"></PARAM>

        /// Section name

        /// <PARAM name="Key"></PARAM>

        /// Key Name

        /// <PARAM name="Value"></PARAM>

        /// Value Name

        public void IniWriteValue(string Section,string Key,string Value)
        {
            WritePrivateProfileString(Section,Key,Value,this.path);
        }
        
        /// <summary>

        /// Read Data Value From the Ini File

        /// </summary>

        /// <PARAM name="Section"></PARAM>

        /// <PARAM name="Key"></PARAM>

        /// <PARAM name="Path"></PARAM>

        /// <returns></returns>

        public string IniReadValue(string Section,string Key)
        {
            StringBuilder temp = new StringBuilder(255);
            int i = GetPrivateProfileString(Section,Key,"",temp, 
                                            255, this.path);
            return temp.ToString();

        }
    }
}

Using the class

Steps to use the Ini class:

  1. In your project namespace definition add 
    using INI;
  2. Create a INIFile like this
    INIFile ini = new INIFile("C:\\test.ini");
  3. Use IniWriteValue to write a new value to a specific key in a section or use IniReadValue to read a value FROM a key in a specific Section.

That's all. It's very easy in C# to include API functions in your class(es).

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

BLaZiNiX


Member

Occupation: Web Developer
Location: Canada Canada

Other popular C# articles:

Article Top
You must Sign In to use this message board.
FAQ FAQ 
 
Noise Tolerance  Layout  Per page   
 Msgs 1 to 23 of 23 (Total in Forum: 23) (Refresh)FirstPrevNext
GeneralGreat Job Pinmembersos.crow17:50 16 Jul '09  
GeneralCode Update! PinmemberBenjamin Ethington10:31 16 Jun '09  
GeneralRe: Code Update! - ConvertIni2Xml PinmemberThymine9:27 4 Aug '09  
GeneralRe: Code Update! Pinmemberthund3rstruck5:46 18 Sep '09  
GeneralAdded some methods to manage additional data types (read) PinmemberNyarlatotep0:42 16 Jun '09  
GeneralUsing this class in a aspx web application PinmemberScott Reid13:47 4 Mar '09  
GeneralHits the spot PinmemberHibbertM1:23 13 Feb '09  
GeneralThanks PinmemberNAMhatre8:47 18 Sep '08  
Questionlicensing? PinmemberNick Trown11:47 14 Aug '08  
Generala question Pinmembergyue22:18 31 Jul '08  
GeneralBad path Pinmemberarj20004:32 18 Jul '08  
GeneralRe: Bad path PinmemberBatzen2:11 17 Feb '09  
GeneralNo Using API Windows (Kernel 32) Pinmembercolijunior11:56 8 Jul '08  
Generalexception Pinmemberfangar5:45 13 May '08  
GeneralThanks PinmemberAsmor10:23 22 Apr '08  
GeneralCheck out SnapConfig PinmemberMember 30271109:28 3 Jan '08  
GeneralA small item to add in... Pinmemberreo6311:52 28 Sep '07  
GeneralRe: A small item to add in... PinmemberMember 392764213:21 14 Aug '09  
GeneralGood, not so clear. PinmemberTechieFreak23:36 17 Oct '07  
GeneralRe: Good, not so clear. Pinmemberm013:59 26 Nov '07  
GeneralGood, thanks. PinmemberTechieFreak23:36 17 Oct '07  
AnswerRe: Good, thanks. PinmemberSkylinc8:21 27 Mar '08  
GeneralRe: Good, thanks. Pinmembersinalot14:41 16 Jul '08  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 14 Mar 2002
Editor: Chris Maunder
Copyright 2002 by BLaZiNiX
Everything else Copyright © CodeProject, 1999-2009
Web13 | Advertise on the Code Project