C# 讀取和配置IniFile


自定義IniFile操作類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.IO;

namespace Sisley
{
    public  class INIFileHepler
    {
       
        private string  Default_IniFileName = "Config.ini"; //INI文件名
        private string strIniFilePath;

        // 返回0表示失敗,非0為成功  
        [DllImport("kernel32", CharSet = CharSet.Auto)]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

        // 返回取得字符串緩沖區的長度  
        [DllImport("kernel32", CharSet = CharSet.Auto)]
        private static extern long GetPrivateProfileString(string section, string key, string strDefault, StringBuilder retVal, int size, string filePath);
        /*
         [DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
         public static extern int GetPrivateProfileInt(string section, string key, int nDefault, string filePath);  
        */

        public INIFileHepler()  
        {
            this.strIniFilePath = Directory.GetCurrentDirectory() + "\\" +Default_IniFileName; 

        }  

 public INIFileHepler(string strIniFilePath)
        {
            if  ( Directory.Exists(strIniFilePath))
            {
                this.strIniFilePath = Directory.GetCurrentDirectory() + "\\" + Default_IniFileName;

            }

  this.strIniFilePath = strIniFilePath;
        }
       
        /// <summary>
        /// 寫入
        /// </summary>
        /// <param name="section">寫入section</param>
        /// <param name="key">寫入key</param>
        /// <param name="value">寫入value</param>
        public void  WriteIniString(string section, string key, string value)  
        {
            try
            {
                WritePrivateProfileString(section, key, value, strIniFilePath);
            }
            catch
            {
                throw new Exception("配置文件不存在或權限不足導致無法寫入");
            }
          
        }

        /// <summary>  
        /// 獲取ini配置文件中的字符串  
        /// </summary>  
        /// <param name="section">節名</param>  
        /// <param name="key">鍵名</param>  
        /// <param name="strDefault">默認值</param>  
        /// <param name="retVal">結果緩沖區</param>  
        /// <param name="size">結果緩沖區大小</param>  
        /// <returns>返回值</returns>  
        public string  GetIniString(string section, string key, string strDefault, StringBuilder retVal, int size)
        {
            long liRet = GetPrivateProfileString(section, key, strDefault, retVal, size, strIniFilePath);
            //return (liRet >= 1);

            StringBuilder temp = new StringBuilder(1024);
            INIFileHepler.GetPrivateProfileString(section, key, strDefault, temp, 1024, strIniFilePath);
            return temp.ToString();
        }  


    }
}
View Code

使用示例:

設置和設置

  INIFileHepler inifile = new INIFileHepler();
        //INIFileHepler inifile = new INIFileHepler(@"D:\MyDocs\CSharp\Program\bin\Debug\TestConfig.ini");
        private void button1_Click(object sender, EventArgs e)
        {
                    
            inifile.WriteIniString("DatabaseConfig", "Server", "192.168.10.3");
            inifile.WriteIniString("DatabaseConfig", "DBName", "DB_Live");
            inifile.WriteIniString("DatabaseConfig", "UserName", "admin");
            inifile.WriteIniString("DatabaseConfig", "UserPassword", "123456");
        }

        private void button2_Click(object sender, EventArgs e)
        {

            richTextBox1.AppendText("DatabaseConfig"+"\n");
            StringBuilder Server = new StringBuilder(32);
            StringBuilder DBName = new StringBuilder(32);
            StringBuilder UserName = new StringBuilder(32);
            StringBuilder UserPassword = new StringBuilder(32);

            inifile.GetIniString("DatabaseConfig", "Server", "", Server, Server.Capacity);

            inifile.GetIniString("DatabaseConfig", "DBName", "", DBName, DBName.Capacity);
            inifile.GetIniString("DatabaseConfig", "UserName", "", UserName, UserName.Capacity);
            inifile.GetIniString("DatabaseConfig", "UserPassword", "", UserPassword, UserPassword.Capacity);
            
            richTextBox1.AppendText("Server:   " +Server+  "\n");
            richTextBox1.AppendText("DBName:   " + DBName + "\n");
            richTextBox1.AppendText("UserName:   " + UserName + "\n");
            richTextBox1.AppendText("UserPassword:   " + UserPassword + "\n");
   }
View Code

 


免責聲明!

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



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