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

C#中讀寫INI文件的方法例子

 更新時(shí)間:2021年06月29日 20:41:35   投稿:shangke  
C#中讀寫INI文件的方法例子,需要的朋友可以參考一下

通常C#使用基于XML的配置文件,不過(guò)如果有需要的話,比如要兼顧較老的系統(tǒng),可能還是要用到INI文件。
但C#本身并不具備讀寫INI文件的API,只有通過(guò)調(diào)用非托管代碼的方式,即系統(tǒng)自身的API才能達(dá)到所需的目的。

對(duì)應(yīng)讀寫的方法分別為GetPrivateProfileString和WritePrivateProfileString。

GetPrivateProfileString中的各參數(shù):
lpAppName —— section的名稱
lpKeyName —— key的名稱
lpDefault —— 如果lpKeyName沒(méi)有被找到的話,則將這個(gè)值復(fù)制到lpReturnedString中
lpReturnedString —— 用于返回結(jié)果的值
nSize —— lpReturnedString的字符長(zhǎng)度
lpFileName —— INI文件名

WritePrivateProfileString中的各參數(shù):
lpAppName —— section的名稱
lpKeyName —— key的名稱
lpString —— 與lpKeyName對(duì)應(yīng)的值
lpFileName —— INI文件名

實(shí)際代碼如下所示:

using System;
using System.Runtime.InteropServices;
using System.Text;

namespace INIDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            WritePrivateProfileString("Demo", "abc", "123", "c:\\demo.ini");

            StringBuilder temp = new StringBuilder();
            GetPrivateProfileString("Demo", "abc", "", temp, 255, "c:\\demo.ini");
            Console.WriteLine(temp);

            Console.ReadLine();
        }

        [DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
        private static extern bool WritePrivateProfileString(
            string lpAppName, string lpKeyName, string lpString, string lpFileName);

        [DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
        private static extern int GetPrivateProfileString(
            string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString,
            int nSize, string lpFileName);
    }
}

程序運(yùn)行后INI文件中的內(nèi)容為:

復(fù)制代碼 代碼如下:

[Demo]
abc=123

這是一種相對(duì)簡(jiǎn)單的方法,若是不想使用非托管方法,你也可以通過(guò)另一種比較麻煩的途徑解決這個(gè)問(wèn)題。

實(shí)現(xiàn)代碼二、

public class Ini
    {
        // 聲明INI文件的寫操作函數(shù) WritePrivateProfileString()
        [System.Runtime.InteropServices.DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
        // 聲明INI文件的讀操作函數(shù) GetPrivateProfileString()
        [System.Runtime.InteropServices.DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string def, System.Text.StringBuilder retVal, int size, string filePath);
        private string sPath = null;

        public Ini(string path)
        {
            this.sPath = path;
        }

        public void Writue(string section, string key, string value)
        {
            // section=配置節(jié),key=鍵名,value=鍵值,path=路徑
            WritePrivateProfileString(section, key, value, sPath);

        }
        public string ReadValue(string section, string key)
        {
            // 每次從ini中讀取多少字節(jié)
            System.Text.StringBuilder temp = new System.Text.StringBuilder(255);
            // section=配置節(jié),key=鍵名,temp=上面,path=路徑
            GetPrivateProfileString(section, key, "", temp, 255, sPath);
            return temp.ToString();
        }
    }

由于INI文件的格式是固定的,所以只要編寫相應(yīng)的解析程序就可以完成同樣的讀寫功能,就是通常的字符串處理而已。

如果你不愿親自動(dòng)手的話,不要緊,已經(jīng)有現(xiàn)成的程序——Cinchoo framework,可以為你實(shí)現(xiàn)你想作的事情。

然后一切又變得簡(jiǎn)單了。

相關(guān)文章

  • C#實(shí)現(xiàn)MQTT服務(wù)端與客戶端通訊功能

    C#實(shí)現(xiàn)MQTT服務(wù)端與客戶端通訊功能

    這篇文章介紹了C#實(shí)現(xiàn)MQTT服務(wù)端與客戶端通訊的功能,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • c#?COM組件原理詳解

    c#?COM組件原理詳解

    本文主要介紹了c#?COM組件原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • C#算法之回文數(shù)

    C#算法之回文數(shù)

    這篇文章介紹了C#算法之回文數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • C#生成防偽碼的思路及源碼分享

    C#生成防偽碼的思路及源碼分享

    生成防偽碼其實(shí)挺簡(jiǎn)單,但是如果要考慮效率和不重復(fù)的話,就需要稍微動(dòng)動(dòng)腦子了,下面我來(lái)說(shuō)說(shuō)我的思路及源碼
    2014-06-06
  • C#實(shí)現(xiàn)讀寫ini配置文件的方法詳解

    C#實(shí)現(xiàn)讀寫ini配置文件的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)讀寫ini配置文件操作,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • 輕松學(xué)習(xí)C#的String類

    輕松學(xué)習(xí)C#的String類

    輕松學(xué)習(xí)C#的String類,小編也是第一次接觸C#的String類,感興趣的小伙伴們可以參考一下,大家一起學(xué)習(xí)
    2015-11-11
  • C#獲取目錄最后訪問(wèn)時(shí)間的方法

    C#獲取目錄最后訪問(wèn)時(shí)間的方法

    這篇文章主要介紹了C#獲取目錄最后訪問(wèn)時(shí)間的方法,涉及C#中LastAccessTime方法的使用技巧,需要的朋友可以參考下
    2015-04-04
  • C#中Invoke和BeginInvoke實(shí)際應(yīng)用詳解

    C#中Invoke和BeginInvoke實(shí)際應(yīng)用詳解

    這篇文章主要給大家介紹了關(guān)于C#中Invoke和BeginInvoke實(shí)際應(yīng)用的相關(guān)資料,Invoke是對(duì)象方法,BeginInvoke是靜態(tài)方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • C# 語(yǔ)言入門基礎(chǔ)介紹

    C# 語(yǔ)言入門基礎(chǔ)介紹

    這篇文章主要介紹了C# 語(yǔ)言入門基礎(chǔ),c#是一種新式編程語(yǔ)言,不僅面向?qū)ο?,還類型安全,本教程概述了 C# 8 及更高版本中該語(yǔ)言的主要組件。 下面一起進(jìn)入文章了解更多的詳細(xì)內(nèi)容吧
    2021-12-12
  • C#中枚舉的特性 FlagAttribute詳解

    C#中枚舉的特性 FlagAttribute詳解

    說(shuō)到FlagsAttribute,源自前幾天看到了一小段代碼,大概意思就是根據(jù)航班政策來(lái)返回哪些配送方式是否可用,根據(jù)這些是否可用來(lái)隱藏或者開(kāi)啟界面的相關(guān)配送方式,不是非常明白,于是今天我們就來(lái)詳細(xì)探討下這個(gè)問(wèn)題
    2018-03-03

最新評(píng)論