C#配置文件讀取


一、首先在項目解決方案內新添加一個類,命名為iniFile.cs

1. 添加以下頭文件

using System.IO;
using System.Runtime.InteropServices;


2. 定義一個全局變量路徑字符串來傳遞路徑,改路徑存儲的是將要讀取或者寫入ini文件的位置

public string path;

 

3.  引入kernel32.dll這個動態連接庫,該動態連接庫里面包含了很多WindowsAPI函,

 

1)繼承dll文件函數的寫入

/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
/// <param name="val"></param>
/// <param name="filePath"></param>
/// <returns></returns>
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

 

2)繼承dll文件函數的讀取

/// <param name="section"></param>
/// <param name="key"></param>
/// <param name="def"></param>
/// <param name="retVal"></param>
/// <param name="size"></param>
/// <param name="filePath"></param>
/// <returns></returns>
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

 

 

4. ini文件構造器

/// <param name="INIPath"></param>
public IniFile(string INIPath)
{
      path = INIPath;
}

 


5. 向ini文件寫入數據,其中section為段名,key為鍵名,value為鍵對應的值

/// <param name="Section"></param>
/// <param name="Key"></param>
/// <param name="Value"></param>
public void WriteString(string Section, string Key, string Value)
{
        WritePrivateProfileString(Section, Key, Value, this.path);
}

 

6.從ini文件讀取數據

/// <param name="Section"></param>
/// <param name="Key"></param>
/// <param name="Path"></param>
/// <returns></returns>
public string ReadString(string Section, string Key)
{
        StringBuilder temp = new StringBuilder(255);
        int i = GetPrivateProfileString(Section, Key, "", temp, 255, this.path);
        return temp.ToString();
}


二、代碼舉例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
namespace Code
{
    static void Main()
    {
        iniFile _file;    
        WriteProfile();    
        Console.WriteLine(ReadProfile());
        public string ReadProfile()
        {
            //FilePath = %Project Path%\%Proje Name%\bin\Debug    
            string strPath = AppDomain.CurrentDomain.BaseDirectory;
            _file = new iniFile(strPath + "SerialPortData.ini");    
            string _str1 = _file.ReadString("Section1", "Key1");
            string _str2 = _file.ReadString("Section1", "Key2");
            string _str3 = _file.ReadString("Section2", "Key1");
            string _str4 = _file.ReadString("Section2", "Key2");
            return _str1 + _str2 + _str3 + _str4;
        }

        public void WriteProfile()
        {  
            string strPath = AppDomain.CurrentDomain.BaseDirectory;
            _file = new iniFile(strPath + "SerialPortData.ini"); 
            _file.WriteString("Section1", "Key1", "111");
            _file.WriteString("Section1", "Key2", "222");
            _file.WriteString("Section2", "Key1", "333");
            _file.WriteString("Section2", "Key2", "444");
        }

    }
}

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM