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

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#獲取gridview的值代碼分享

    c#獲取gridview的值代碼分享

    這篇文章主要介紹了C#如何在事件中獲得GridView里面TextBox的值,大家參考使用吧
    2013-12-12
  • C#中List轉(zhuǎn)IList的實(shí)現(xiàn)

    C#中List轉(zhuǎn)IList的實(shí)現(xiàn)

    本文主要介紹了C#中List轉(zhuǎn)IList的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Response.Redirect 正在中止線程解決方案

    Response.Redirect 正在中止線程解決方案

    這兩天在開(kāi)發(fā)調(diào)試過(guò)程中,老是會(huì)出現(xiàn)在一個(gè) "正在中止線程“(ThreadAbortException)的例外信息,很是疑惑,于是網(wǎng)上收集整理了一下,現(xiàn)在曬出來(lái)和大家分享,希望對(duì)你們有幫助
    2012-11-11
  • C#從命令行讀取參數(shù)的方法

    C#從命令行讀取參數(shù)的方法

    這篇文章主要介紹了C#從命令行讀取參數(shù)的方法,實(shí)例分析了C#命令行讀取參數(shù)的實(shí)現(xiàn)技巧與操作流程,需要的朋友可以參考下
    2015-04-04
  • C#創(chuàng)建數(shù)據(jù)庫(kù)及導(dǎo)入sql腳本的方法

    C#創(chuàng)建數(shù)據(jù)庫(kù)及導(dǎo)入sql腳本的方法

    這篇文章主要介紹了C#創(chuàng)建數(shù)據(jù)庫(kù)及導(dǎo)入sql腳本的方法,涉及C#針對(duì)數(shù)據(jù)庫(kù)的創(chuàng)建、連接、導(dǎo)入等相關(guān)操作技巧,需要的朋友可以參考下
    2015-12-12
  • C#實(shí)現(xiàn)微信分賬功能的完整步驟

    C#實(shí)現(xiàn)微信分賬功能的完整步驟

    這篇文章主要給大家介紹了關(guān)于C#實(shí)現(xiàn)微信分賬功能的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • C#中接口(interface)的理解

    C#中接口(interface)的理解

    C#中接口(interface)的理解...
    2007-03-03
  • C#實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件夾變化

    C#實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件夾變化

    在開(kāi)發(fā)各種應(yīng)用程序時(shí),我們經(jīng)常需要對(duì)文件系統(tǒng)中的文件或文件夾進(jìn)行實(shí)時(shí)監(jiān)測(cè),下面就跟隨小編一起來(lái)看看具體如何使用C#實(shí)現(xiàn)這一功能吧
    2024-03-03
  • C#三種方法獲取文件的Content-Type(MIME Type)

    C#三種方法獲取文件的Content-Type(MIME Type)

    這篇文章介紹了C#獲取文件Content-Type(MIME Type)的三種方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • C#中調(diào)用Windows API的技術(shù)要點(diǎn)說(shuō)明

    C#中調(diào)用Windows API的技術(shù)要點(diǎn)說(shuō)明

    本篇文章主要是對(duì)C#中調(diào)用Windows API的技術(shù)要點(diǎn)進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01

最新評(píng)論