Skip to content

Instantly share code, notes, and snippets.

@minhphuc429
Created April 2, 2016 13:33
Show Gist options
  • Save minhphuc429/b4ef9aa1d4713c410397fbdd39e0abd7 to your computer and use it in GitHub Desktop.
Save minhphuc429/b4ef9aa1d4713c410397fbdd39e0abd7 to your computer and use it in GitHub Desktop.
A C# class that exposes the INI file handling functions from Kernal32.dll
using System;
using System.IO;
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();
}
}
}
@minhphuc429
Copy link
Author

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

Using the class
Steps to use the Ini class:

In your project namespace definition add

using INI;

Create a INIFile like this

INIFile ini = new INIFile("C:\test.ini");

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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment