亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

INI文件介紹

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

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

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

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

kernel32

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

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

Demo案例

實現(xiàn)功能

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

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

程序代碼

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文件中寫入數(shù)據(jù)
        public static extern long WritePrivateProfileString(string mpAppName, string mpKeyName, string mpDefault, string mpFileName);
        /// <summary>
        /// 讀取INI文件
        /// </summary>
        /// <param name="section">欲在其中查找條目的小節(jié)名稱。這個字串不區(qū)分大小寫。</param>
        /// <param name="key">欲獲取的項名或條目名。這個字串不區(qū)分大小寫。</param>
        /// <param name="def">指定的條目沒有找到時返回的默認值。可設為空("")</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);
        }
    }
}

擴展作用

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

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

相關文章

  • c#獲取gridview的值代碼分享

    c#獲取gridview的值代碼分享

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

    C#中List轉IList的實現(xiàn)

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

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

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

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

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

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

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

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

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

    C#中接口(interface)的理解

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

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

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

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

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

    C#中調用Windows API的技術要點說明

    本篇文章主要是對C#中調用Windows API的技術要點進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01

最新評論