zoukankan      html  css  js  c++  java
  • 通过Window API kernel32读写INI文件

    public class IniFile
        {
            [DllImport("kernel32")]
            private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

            [DllImport("kernel32")]
            private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

            public string GetFileName
            {
                get;
                set;
            }
            public IniFile(string filePath)
            {
                GetFileName = filePath;
            }
            /// <summary>
            /// 写入INI文件
            /// </summary>
            /// <param name="Section"></param>
            /// <param name="key">键</param>
            /// <param name="value">值</param>
            public void WriteValue(string Section, string key, string value)
            {
                WritePrivateProfileString(Section, key, value, GetFileName);
            }
            /// <summary>
            /// 读取INI文件
            /// </summary>
            /// <param name="Section"></param>
            /// <param name="key">待获取数据的键</param>
            /// <param name="defValue">表示当通过键获取数据时,如果键不存在或无法找到数据,则返回该值</param>
            /// <returns></returns>
            public string ReadValue(string Section, string key, string defValue)
            {
                StringBuilder temp = new StringBuilder(255);
                int i = GetPrivateProfileString(Section, key, defValue, temp, 255, this.GetFileName);
                return temp.ToString();
            }
        }

    应用:

     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            IniFile ini = new IniFile("C:\\config.ini");
            private void button1_Click(object sender, EventArgs e)
            {
                ini.WriteValue("Config", "Port", "COM1");
            }

            private void button2_Click(object sender, EventArgs e)
            {
                string port = ini.ReadValue("Config", "Port", "COM2");
            }
        }

    结果:

    写入:

    [Config]
    Port=COM1

    读出:

    COM1, 

    假如我改成这样: string port = ini.ReadValue("Config", "Port123", "COM2");,该Port123键不存在INI文件中,那么port的值就为COM2


     

  • 相关阅读:
    利用js读出xml制作地区联动下拉框
    用EXTJS做一个右下角的泡泡窗口(一)
    用Json.net 解析 QQ城市达人中的地址列表
    用httpwebrequest访问跨域网站时对CookieContainer的处理
    asp.net 中PDF模式下省略水晶报表自己的预览
    asp.net 取得URL信息
    利用WebClient 制作调试Http的post 和 get 工具
    超级网银就是一砣 SHI
    SAP R/3 Testing[2]
    [1.1]用WebService返回歌曲的曲目信息.借鉴[星集工作室 张麟 Dephi版]
  • 原文地址:https://www.cnblogs.com/KimhillZhang/p/2689834.html
Copyright © 2011-2022 走看看