欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#對(duì)INI文件進(jìn)行讀寫操作的示例代碼

 更新時(shí)間:2024年02月01日 17:15:06   作者:lingxiao16888  
這篇文章主要為大家詳細(xì)介紹了C#對(duì)INI文件進(jìn)行讀寫操作的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,有需要的小伙伴可以參考一下

1.通過調(diào)用API函數(shù)完成對(duì)INI文件的讀取,修改,寫入操作

 string filePath;
        private void btnModify_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(filePath) || !File.Exists(filePath))
            {
                using (SaveFileDialog sfd=new SaveFileDialog())
                {                    
                    sfd.Filter= "初始化文件(*.INI)|*.INI";
                    if (sfd.ShowDialog() == DialogResult.OK)
                    {
                        FileStream fs = System.IO.File.Create(sfd.FileName);
                        fs.Dispose();
                        filePath = sfd.FileName;
                    }
                }
            }
            INIHelper.WriteToINI(filePath, "ConnectString", "Data Source", txtServer.Text);
            INIHelper.WriteToINI(filePath, "ConnectString", "DataBase", txtDataBase.Text);
            INIHelper.WriteToINI(filePath, "ConnectString", "Uid", txtSid.Text);
            INIHelper.WriteToINI(filePath, "ConnectString", "Pwd", txtPwd.Text);
            MessageBox.Show("保存成功!");
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            using(OpenFileDialog ofd=new OpenFileDialog())
            {
                ofd.Filter = "初始化文件(*.INI)|*.INI";
                ofd.Multiselect = false;
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                     filePath = ofd.FileName;
                    string source = INIHelper.ReadFromINI(filePath, "ConnectString", "Data Source");
                    string dataName= INIHelper.ReadFromINI(filePath, "ConnectString", "DataBase");
                    string uid= INIHelper.ReadFromINI(filePath, "ConnectString", "Uid", "未設(shè)置");
                    string pwd= INIHelper.ReadFromINI(filePath, "ConnectString", "Pwd","未設(shè)置");
                    txtServer.Text = source;
                    txtDataBase.Text = dataName;
                    txtSid.Text = uid;
                    txtPwd.Text = pwd;
                }
            }
        }
    }
    /// <summary>
    /// 對(duì)INI文件進(jìn)行讀寫
    /// </summary>
    class INIHelper
    {
        /// <summary>
        /// 從INI文件中讀取數(shù)據(jù)
        /// </summary>
        /// <param name="filePath">INI文件的全路徑</param>
        /// <param name="rootValue">根節(jié)點(diǎn)值,例如根節(jié)點(diǎn)[ConnectString]的值為:ConnectString</param>
        /// <param name="key">根節(jié)點(diǎn)下的鍵</param>
        /// <param name="defValue">當(dāng)標(biāo)記值未設(shè)定或不存在時(shí)的默認(rèn)值</param>
        /// <returns></returns>
        public static string ReadFromINI(string filePath, string rootValue,string key,string defValue="")
        {
            StringBuilder sb = new StringBuilder(1024);
            GetPrivateProfileString(rootValue, key, defValue, sb, 1024, filePath);
            return sb.ToString();
        }
        public static void WriteToINI(string filePath, string rootValue, string key, string newVal)
        {
           
            WritePrivateProfileString(rootValue, key, newVal, filePath);
           
        }
        
        /// <summary>
        /// 對(duì)INI文件進(jìn)行讀取操作
        /// </summary>
        /// <param name="IpAppName">表示INI文件內(nèi)部根節(jié)點(diǎn)的值</param>
        /// <param name="IpKeyName">表示根節(jié)點(diǎn)下子標(biāo)記的值</param>
        /// <param name="IpDefault">表示當(dāng)標(biāo)記值未設(shè)定或不存在時(shí)的默認(rèn)值</param>
        /// <param name="IpReturnString">返回讀取節(jié)點(diǎn)的值</param>
        /// <param name="nSize">讀取的節(jié)點(diǎn)內(nèi)容的最大容量</param>
        /// <param name="IpFileName">文件的全路徑</param>
        /// <returns></returns>
        [System.Runtime.InteropServices.DllImport("kernel32")]
        static extern int GetPrivateProfileString(string IpAppName, string IpKeyName, string IpDefault, StringBuilder IpReturnString, int nSize, string IpFileName);
        /// <summary>
        /// 對(duì)INI文件進(jìn)行寫入操作
        /// </summary>
        /// <param name="mpAppName">INI文件內(nèi)部根節(jié)點(diǎn)的值</param>
        /// <param name="mpKeyName">將要修改的標(biāo)記名稱</param>
        /// <param name="mpDefault">想要修改的內(nèi)容</param>
        /// <param name="mpFileName">INI文件的全路徑</param>
        /// <returns></returns>
        [System.Runtime.InteropServices.DllImport("kernel32")]
        static extern long WritePrivateProfileString(string mpAppName, string mpKeyName, string mpDefault, string mpFileName);
    }

2,INI文件的擴(kuò)展名為.ini 例如:System.ini 。

3,INI文件格式如下(使用記事本打開):

[ConnectString]
Data Source=192.168.1.97
DataBase=master
Uid=sa
Pwd=1

注解:

[ConnectString] :根節(jié)點(diǎn),進(jìn)行讀寫時(shí)首先需要知曉根節(jié)點(diǎn)值(例如 [ConnectString]  根節(jié)點(diǎn)值為:ConnectString)

DataBase:鍵,通過該鍵可獲取該鍵對(duì)應(yīng)的值,

到此這篇關(guān)于C#對(duì)INI文件進(jìn)行讀寫操作的示例代碼的文章就介紹到這了,更多相關(guān)C#讀寫操作INI內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文掌握C# JSON(2023最新整理)

    一文掌握C# JSON(2023最新整理)

    JSON的全稱是JavaScript Object Notation,意思是JavaScript對(duì)象表示法,它是一種基于文本,獨(dú)立于語言的輕量級(jí)數(shù)據(jù)交換格式,這篇文章主要介紹了C#中的JSON(2023最新整理),需要的朋友可以參考下
    2023-05-05
  • C#面向?qū)ο笤O(shè)計(jì)原則之組合/聚合復(fù)用原則

    C#面向?qū)ο笤O(shè)計(jì)原則之組合/聚合復(fù)用原則

    這篇文章介紹了C#面向?qū)ο笤O(shè)計(jì)原則之組合/聚合復(fù)用原則,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C#判斷一個(gè)類是否實(shí)現(xiàn)了某個(gè)接口3種實(shí)現(xiàn)方法

    C#判斷一個(gè)類是否實(shí)現(xiàn)了某個(gè)接口3種實(shí)現(xiàn)方法

    這篇文章主要介紹了C#判斷一個(gè)類是否實(shí)現(xiàn)了某個(gè)接口3種實(shí)現(xiàn)方法,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-06-06
  • c# webapi 配置swagger的方法

    c# webapi 配置swagger的方法

    這篇文章主要介紹了c# webapi 配置swagger的方法,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C# SQlite操作方法小結(jié)

    C# SQlite操作方法小結(jié)

    這篇文章主要介紹了C# SQlite操作方法,較為詳細(xì)的講述了SQLite的下載與C#針對(duì)SQLite的連接、創(chuàng)建、與執(zhí)行SQL語句等操作相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • C#編寫Windows服務(wù)實(shí)例代碼

    C#編寫Windows服務(wù)實(shí)例代碼

    本篇文章主要介紹使用Microsoft Visual Studio2012可以很方便的創(chuàng)建一個(gè)Windows服務(wù),本例實(shí)現(xiàn)一個(gè)向D盤的txt文件里,寫入系統(tǒng)時(shí)間的Windows服務(wù)
    2013-10-10
  • C#使用OpenCvSharp實(shí)現(xiàn)圖像校正

    C#使用OpenCvSharp實(shí)現(xiàn)圖像校正

    這篇文章主要為大家詳細(xì)介紹了C#如何使用OpenCvSharp實(shí)現(xiàn)圖像校正功能,文中的示例代碼簡(jiǎn)潔易懂,具有一定的學(xué)習(xí)價(jià)值,需要的小伙伴可以參考下
    2023-11-11
  • C#鎖住文件的操作步驟

    C#鎖住文件的操作步驟

    在本篇文章里小編給大家整理的是關(guān)于C#鎖住文件的操作步驟以及相關(guān)知識(shí)點(diǎn),需要的朋友們參考下。
    2019-08-08
  • C#委托初級(jí)使用的實(shí)例代碼

    C#委托初級(jí)使用的實(shí)例代碼

    這篇代碼介紹了C#中委托的初級(jí)使用實(shí)例,有需要的朋友可以參考一下
    2013-06-06
  • C# 中DateTime 的使用技巧匯總

    C# 中DateTime 的使用技巧匯總

    本文主要介紹了DateTime的使用技巧,包括獲取本周、上周、下周、本月、上個(gè)月、下個(gè)月、本季度、上季度、下季度、本年度、上年度、下年度等多個(gè)方法,分享給大家,希望對(duì)大家有所幫助。
    2016-04-04

最新評(píng)論