最近需要使用 C# 存取 INI 檔案,在 Windows 中早已經有相關 API 可以使用,可以使用

DLLImport方式 Import 這些 API, 且在網路上也有很多相關文章可以參考。

程式碼:(儲存成 IniFile.cs 檔案)

using System.Runtime.InteropServices; 
using System.Text;
public class IniFile{
 
    [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);
    
    private string filepath;
    public IniFile(string filepath){
        this.filepath=filepath;
    }
    
    public void WriteIni(string section,string key,string val){
        WritePrivateProfileString(section,key,val,filepath);
    }
    
    public string ReadIni(string section,string key){
        StringBuilder temp=new StringBuilder(255);
        GetPrivateProfileString(section,key,"",temp,255,filepath);
        return temp.ToString();
    }
    
}

接下來寫個簡單程式碼測試一下

ini 中的資料(儲存成 Test.ini 檔案)

[System]
Num=10

測試程式碼(儲存成 Test.cs 檔案)

using System;
public class Test{
 
    public static void Main(string[] args){
    
        IniFile ini=new IniFile("E:\\Test.ini");
        
        //寫入資料到 ini 中
        ini.WriteIni("System","Name","Test");
        
        //讀取 Ini 中 Num 的值 
        Console.WriteLine("Num Value="+ini.ReadIni("System","Num"));
    }
    
}

編譯程式

2010-10-10_140859

執行結果:

2010-10-10_141106

Ini 檔案內容,寫入 Name 資料成功

2010-10-10_141149

 

參考網站:

http://www.developer.com/net/csharp/article.php/3287991/INI-Files-Will-Never-Die-How-To-in-NET.htm

http://www.silmoon.com/site/Article/techatc/codeandprogram/DotNet/Article_286.html

iammic 發表在 痞客邦 PIXNET 留言(0) 人氣()