iniファイルの応用


一、INIファイルとは何ですか.
INIファイルがWindowsシステムで最も重要なのは、「system.ini」、「System 32.ini」、「Win.ini」です.このファイルには、主にユーザーの選択やシステムのさまざまなパラメータが格納されます.ユーザーはINIファイルを変更することで、アプリケーションやシステムの多くの構成を変更することができます.
 
二、INIファイルフォーマット
INIファイルは、特定の方法で並べられたファイルです.各INIファイルの構成は非常に類似しており、いくつかの段落(Section)で構成されており、かっこ付きタイトルの下には、いくつかの単語の先頭にあるキーワード(keyword)と1つの等号があり、等号の右側にあるのがキーワードに対応する値(value)である.
 
            [Section1]
                  KeyWord1=value1
                  KeyWord2=value2
             [Section2]
                   KeyWord3=value3
                   KeyWord4=value4
三、INIファイルプログラミング
(1)INIファイル使用の必要性
INIファイルは、自身の情報を記録するものであり、例えば、緑色のソフトウェアは必須のINIファイルである
(2)INIファイルの使用箇所
INIファイルは、システム構成およびアプリケーションパラメータの保存と設定において重要な役割を果たす.C#プログラミングにおいて、INIは非管理コードであり、C#が使用するクラスライブラリはすべて管理コードであるため、WIN 32のAPI関数を使用して管理COMオブジェクトにアクセスし、INIファイルの読み書きを行う必要がある
C#操作INIファイルは、Windowsシステムに付属するWIN 32のAPI関数WritePrivateProfileString()とGetPrivateProfileString()関数を使用する必要があり、どちらもKernel 32にある.dllファイルにあります.
 
四、C#呼び出しAPI操作INIファイル
INIファイルを操作するために使用される3つのAPI関数:
     
WritePrivateProfileString()INIファイル書き込み関数
 
GetPrivateProfileString()とGetPrivateProfileInt()INIファイル読み込みの関数
この2つの違いは、前者が文字列を読み込み、後者が整数値を読み込むことです.
 
五、C#INIファイルの読み書き操作関数を宣言する
WriteProvateProfileString()の説明:
     [Dlllmport("kernel32")]
     private static extern long WriteProvateProfileString(string section,string key , string val,string filePath);
パラメータの説明:
Section:INIファイルの段落名;
key:INIファイルの関字;
val:INIファイル内のキーワードの数値;
file Path:INIファイルの完全なパスと名前;
 
GetPrivateProfileString()の説明:
     [Dlllmport("kernel32")]
     private static extern int GetPrivateProfileString(string section,string key,string def,stringBuilder retval,int size,string filepath);
パラメータの説明:
Section:INIファイルの段落名;
key:INIファイルのキーワード;
def:読み取り不能時の欠落数値;
retVal:数値を読み込む;
size;数値サイズ;
file Path:INIファイルのフルパスと名前.
 
六、INIファイルを読み書きする類の例:
using System.Runtime.InteropServices;
using System.Text;
nameSpace INIFile
{
     public class INIClass
     {
           public string inipath;   //ini      (   )
           [Dlllmport("kernel32")]
           private static extern long WritePrivateProfileString(string section,string key,string val,string filePath);
           [Dlllmport("kernel32")]
           private static extern int GetPrivateProfileString(string section,string key,string def,StringBuilder retVal,int size,string filePath);

///<summary>
///    
///</summary>
///<param name="INIPath">    </param>
public INIClass(string INIPath)
{
     inipath=INIPath;
}

///<summary>
///  INI  
///</summary>
///<param name="Section">    ( TypeName)</param>
///<param name="key"> </param>
///<param name="value"> </param>

public void IniWriteValue(string Section,string key,string Value)
{
        WritePrivateProfileString(Section,key,value,this.inipath);
}

///<summary>
///  INI   
///<summary>
///<param name"Section">    </param>
///<param name="Key"> </param>

public string IniReadValue(string Section,string Key)
{
     StringBuilder temp=new StringBuilder(500);
     int i=GetPrivateProfileString(Section,key,"",temp,500,this.inipath);
     return temp.ToString();
}

///<summary>
///        
///</summary>
///<returns>   </returns>

public bool ExistINIFile()
{
    return File.Exists(inipath);
}
     }
}

 
INIファイルリファレンス接続http://www.cnblogs.com/wakerobin/archive/2009/09/11/1564993.html
 
C#操作INIファイルのまとめについて