C#中讀寫ini檔案

來源:互聯網
上載者:User

C#中沒有讀寫ini檔案的類,但用API函數很容易實現.

表單代碼如下:

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

namespace IniFileDemo
{
    public partial class Form1 : Form
    {
        /**//**//**//// <summary>
        /// 讀ini檔案檔案API函式宣告
        /// </summary>
        /// <param name="section">小節名</param>
        /// <param name="key">關鍵字</param>
        /// <param name="def">如果沒找到時的預設值</param>
        /// <param name="retVal">存放傳回值的緩衝區</param>
        /// <param name="size">緩衝區大小</param>
        /// <param name="filePath">要讀取的ini檔案的路徑</param>
        /// <returns>返回讀取到的字元數</returns>
        [DllImport("kernel32")]
        private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

        /**//**//**//// <summary>
        /// 寫ini檔案API函式宣告
        /// </summary>
        /// <param name="section">小節名</param>
        /// <param name="key">關鍵字</param>
        /// <param name="val">要寫入的值</param>
        /// <param name="filePath">要寫入的ini檔案的路徑</param>
        /// <returns>返回寫入的字元數</returns>
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

        public Form1()
        {
            InitializeComponent();
        }

        /**//**//**//// <summary>
        /// 從ini檔案讀取值並應用到表單的Width,Height屬性
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_Load(object sender, EventArgs e)
        {
            StringBuilder myBuilder=new StringBuilder(256);
            GetPrivateProfileString("settings", "width", "300", myBuilder, 256, ".app.ini");
            Width = Int32.Parse(myBuilder.ToString());
            textBox1.Text = Width.ToString();

            GetPrivateProfileString("settings", "height", "300", myBuilder, 256, ".app.ini");
            Height = Int32.Parse(myBuilder.ToString());
            textBox2.Text = Height.ToString();
        }

        /**//**//**//// <summary>
        /// 將自訂的值寫入ini檔案
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            Width = Int32.Parse(textBox1.Text);
            Height = Int32.Parse(textBox2.Text);
            WritePrivateProfileString("settings", "width", textBox1.Text, ".app.ini");
            WritePrivateProfileString("settings", "height", textBox2.Text, ".app.ini");
        }
    }
}



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.