最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#操作INI文件的方法詳解

 更新時(shí)間:2022年10月21日 09:41:55   作者:yue008  
INI文件全稱(chēng)是Initialization File的縮寫(xiě),即初始化文件,是windows系統(tǒng)的系統(tǒng)配置文件所采用的存儲(chǔ)格式,統(tǒng)管windows的各項(xiàng)配置。本文介紹了C#操作INI文件的方法,需要的可以參考一下

本文主要介紹通過(guò)調(diào)用kernel32函數(shù),實(shí)現(xiàn)對(duì)ini文件的讀取和寫(xiě)入。

INI文件介紹

INI文件全稱(chēng)是Initialization File的縮寫(xiě),即初始化文件,是windows系統(tǒng)的系統(tǒng)配置文件所采用的存儲(chǔ)格式,統(tǒng)管windows的各項(xiàng)配置。

INI文件由節(jié)、鍵、值組成。

INI文件一般放一些常量或數(shù)據(jù)庫(kù)鏈接語(yǔ)句等,再在需要的頁(yè)面包含進(jìn)去,和直接命為asp是沒(méi)什么區(qū)別的。

在進(jìn)行C#程序開(kāi)發(fā)時(shí),尤其涉及到數(shù)據(jù)庫(kù)配置或其他信息,可配置INI文件,方便軟件的靈活配置。

kernel32

kernel32.dll是Windows 9x/Me中非常重要的32位動(dòng)態(tài)鏈接庫(kù)文件,屬于內(nèi)核級(jí)文件。它控制著系統(tǒng)的內(nèi)存管理、數(shù)據(jù)的輸入輸出操作和中斷處理,當(dāng)Windows啟動(dòng)時(shí),kernel32.dll就駐留在內(nèi)存中特定的寫(xiě)保護(hù)區(qū)域,使別的程序無(wú)法占用這個(gè)內(nèi)存區(qū)域。 以上來(lái)自百度百科

[DllImport("kernel32")] //讀取INI文件
public static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
[DllImport("kernel32")]//向INI文件中寫(xiě)入數(shù)據(jù)
public static extern long WritePrivateProfileString(string mpAppName,string mpKeyName,string mpDefault,string mpFileName);

Demo案例

實(shí)現(xiàn)功能

調(diào)用Kernel32函數(shù)實(shí)現(xiàn)ini文件的讀取和寫(xiě)入。

注意ini的編碼格式為ANSI。在實(shí)際軟件編寫(xiě)時(shí),發(fā)現(xiàn)無(wú)法保存為ANSI,網(wǎng)上了解后發(fā)現(xiàn)是ASCI包含中文字符,所有ini需要有中文字符。如果全是英文的話,則無(wú)法保存為ASCI,即使保存為ASCI,再次打開(kāi)后也會(huì)變成其他編碼格式。

程序代碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace INIOpera
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        #region 定義公共變量
        public static string strNode = "INFO";
        public static string strPath = Application.StartupPath + "\\INFO.ini";
        #endregion

        //引入kernel32函數(shù)

        [DllImport("kernel32")] //讀取INI文件
        public static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
        [DllImport("kernel32")]//向INI文件中寫(xiě)入數(shù)據(jù)
        public static extern long WritePrivateProfileString(string mpAppName, string mpKeyName, string mpDefault, string mpFileName);
        /// <summary>
        /// 讀取INI文件
        /// </summary>
        /// <param name="section">欲在其中查找條目的小節(jié)名稱(chēng)。這個(gè)字串不區(qū)分大小寫(xiě)。</param>
        /// <param name="key">欲獲取的項(xiàng)名或條目名。這個(gè)字串不區(qū)分大小寫(xiě)。</param>
        /// <param name="def">指定的條目沒(méi)有找到時(shí)返回的默認(rèn)值??稍O(shè)為空("")</param>
        /// <param name="filePath">完整的INI文件名</param>
        /// <returns></returns>
        public static string GetINIFileString(string section,string key, string def, string filePath)
        {
            StringBuilder strTemp = new StringBuilder(1024);
            GetPrivateProfileString(section, key, def, strTemp, 1024, filePath);
            return strTemp.ToString();
        }
       

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = GetINIFileString(strNode, "Name","", strPath);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox2.Text = GetINIFileString(strNode, "Location", "", strPath);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            textBox3.Text = GetINIFileString(strNode, "IP", "", strPath);
        }

        private void button4_Click(object sender, EventArgs e)
        {
            textBox4.Text = GetINIFileString(strNode, "ComputerName", "", strPath);
        }

        private void button5_Click(object sender, EventArgs e)
        {
            textBox5.Text = GetINIFileString(strNode, "WorkAblity", "", strPath);
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void button6_Click(object sender, EventArgs e)
        {
            WritePrivateProfileString(strNode, "Name", textBox10.Text,strPath);
        }

        private void button7_Click(object sender, EventArgs e)
        {
            WritePrivateProfileString(strNode, "Location", textBox9.Text, strPath);
        }

        private void button8_Click(object sender, EventArgs e)
        {
            WritePrivateProfileString(strNode, "IP", textBox8.Text, strPath);
        }

        private void button9_Click(object sender, EventArgs e)
        {
            WritePrivateProfileString(strNode, "ComputerName", textBox7.Text, strPath);
        }

        private void button10_Click(object sender, EventArgs e)
        {
            WritePrivateProfileString(strNode, "WorkAblity", textBox6.Text, strPath);
        }
    }
}

擴(kuò)展作用

INI文件主要保存數(shù)據(jù)庫(kù)的參數(shù)信息或其他軟件信息,尤其在進(jìn)行項(xiàng)目移植中,可以修改配置參數(shù),快速完成軟件程序的調(diào)試。

到此這篇關(guān)于C#操作INI文件的方法詳解的文章就介紹到這了,更多相關(guān)C#操作INI文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何在C#中循環(huán)訪問(wèn)目錄樹(shù)

    詳解如何在C#中循環(huán)訪問(wèn)目錄樹(shù)

    在C#中,訪問(wèn)文件系統(tǒng)是常見(jiàn)的需求之一,有時(shí)我們需要遍歷目錄樹(shù)以執(zhí)行某些操作,例如搜索文件、計(jì)算目錄大小或執(zhí)行批量處理,本文將詳細(xì)介紹如何在C#中循環(huán)訪問(wèn)目錄樹(shù),并提供一個(gè)完整的示例,需要的朋友可以參考下
    2024-08-08
  • C#使用kernel32.dll讀寫(xiě)INI文件的案例詳解

    C#使用kernel32.dll讀寫(xiě)INI文件的案例詳解

    INI就是擴(kuò)展名為"INI"的文件,其實(shí)他本身是個(gè)文本文件,可以用記事本打開(kāi),主要存放的是用戶所做的選擇或系統(tǒng)的各種參數(shù),這篇文章主要介紹了C#使用kernel32.dll讀寫(xiě)INI文件的方法,需要的朋友可以參考下
    2023-05-05
  • C#?LiteDB基本使用示例代碼

    C#?LiteDB基本使用示例代碼

    LiteDB是一種文檔型單文件數(shù)據(jù)庫(kù),基于Key-Value方式存取數(shù)據(jù),LiteDB?的靈感來(lái)自?MongoDB?數(shù)據(jù)庫(kù),所以它的?API?和?MongoDB?的?.NET?API?非常相似,這篇文章主要介紹了C#?LiteDB基本使用,需要的朋友可以參考下
    2024-03-03
  • Unity色子的投擲和點(diǎn)數(shù)的獲得詳析

    Unity色子的投擲和點(diǎn)數(shù)的獲得詳析

    這篇文章主要給大家介紹了關(guān)于Unity色子的投擲和點(diǎn)數(shù)的獲得的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • C#檢查Windows是否安裝了某個(gè)服務(wù)的方法

    C#檢查Windows是否安裝了某個(gè)服務(wù)的方法

    這篇文章主要介紹了C#檢查Windows是否安裝了某個(gè)服務(wù)的方法,涉及C#操作windows系統(tǒng)服務(wù)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Unity中3DText顯示模糊不清的解決方案

    Unity中3DText顯示模糊不清的解決方案

    這篇文章主要介紹了Unity中3DText顯示模糊不清的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • 通過(guò)C#實(shí)現(xiàn)在Word中插入或刪除分節(jié)符

    通過(guò)C#實(shí)現(xiàn)在Word中插入或刪除分節(jié)符

    在Word中,分節(jié)符是一種強(qiáng)大的工具,用于將文檔分成不同的部分,每個(gè)部分可以有獨(dú)立的頁(yè)面設(shè)置,如頁(yè)邊距、紙張方向、頁(yè)眉和頁(yè)腳等,本文將介紹如何使用一個(gè)免費(fèi)的.NET庫(kù)通過(guò)C#實(shí)現(xiàn)插入或刪除Word分節(jié)符,需要的朋友可以參考下
    2024-08-08
  • c#?==操作符和equals方法的使用區(qū)別

    c#?==操作符和equals方法的使用區(qū)別

    在C#中,==操作符和Equals()方法有著不同的用途和行為,本文就來(lái)介紹一下c#?==操作符和equals方法的使用區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • C#對(duì)圖片進(jìn)行馬賽克處理可控制模糊程度的實(shí)現(xiàn)代碼

    C#對(duì)圖片進(jìn)行馬賽克處理可控制模糊程度的實(shí)現(xiàn)代碼

    本文通過(guò)實(shí)例代碼給大家介紹了C#對(duì)圖片進(jìn)行馬賽克處理可控制模糊程度的實(shí)現(xiàn)方法,代碼超簡(jiǎn)單,具有一定的參考借鑒價(jià)值,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • C#調(diào)用WebService的方法介紹

    C#調(diào)用WebService的方法介紹

    這篇文章介紹了C#調(diào)用WebService的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論

普兰县| 乐山市| 留坝县| 永善县| 陇南市| 濉溪县| 灵宝市| 兴城市| 惠来县| 开鲁县| 上思县| 鄂托克前旗| 云梦县| 龙海市| 桐梓县| 靖州| 三亚市| 阜阳市| 钟山县| 钟山县| 喀喇沁旗| 闻喜县| 犍为县| 普兰店市| 武城县| 兴安县| 平定县| 清水河县| 乌拉特中旗| 龙陵县| 梧州市| 宁明县| 延津县| 从江县| 外汇| 稷山县| 宽甸| 疏附县| 搜索| 沙坪坝区| 景德镇市|