zoukankan      html  css  js  c++  java
  • C# ini配置文件操作类

        /// <summary>
        /// INI文件操作类
        /// </summary>
        public class IniFileHelper {
            /// <summary>
            /// ini配置文件路径
            /// </summary>
            private static string strIniFilePath = AppDomain.CurrentDomain.BaseDirectory + "PrintDesigner.ini";
    
            // 返回0表示失败,非0为成功
            [DllImport("kernel32", CharSet = CharSet.Auto)]
            private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
    
            // 返回取得字符串缓冲区的长度
            [DllImport("kernel32", CharSet = CharSet.Auto)]
            private static extern long GetPrivateProfileString(string section, string key, string strDefault, StringBuilder retVal, int size, string filePath);
    
            [DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
            public static extern int GetPrivateProfileInt(string section, string key, int nDefault, string filePath);
    
            public IniFileHelper() {
    
            }
    
            /// <summary>
            /// 获取ini配置文件中的字符串
            /// </summary>
            /// <param name="section">节名</param>
            /// <param name="key">键名</param>
            /// <param name="strDefault">默认值</param>
            /// <param name="retVal">结果缓冲区</param>
            /// <param name="size">结果缓冲区大小</param>
            /// <returns></returns>
            public static string GetIniString(string section, string key, string strDefault = "") {
                StringBuilder sb = new StringBuilder(1000);
                long liRet = GetPrivateProfileString(section, key, strDefault, sb, sb.Capacity, strIniFilePath);
                return sb.ToString();
            }
    
            /// <summary>
            /// 获取ini配置文件中的整型值
            /// </summary>
            /// <param name="section">节名</param>
            /// <param name="key">键名</param>
            /// <param name="nDefault">默认值</param>
            /// <returns></returns>
            public static int GetIniInt(string section, string key, int nDefault) {
                return GetPrivateProfileInt(section, key, nDefault, strIniFilePath);
            }
    
            /// <summary>
            /// 往ini配置文件写入字符串
            /// </summary>
            /// <param name="section">节名</param>
            /// <param name="key">键名</param>
            /// <param name="val">要写入的字符串</param>
            /// <returns>成功true,失败false</returns>
            public static bool WriteIniString(string section, string key, string val) {
                long liRet = WritePrivateProfileString(section, key, val, strIniFilePath);
                return (liRet != 0);
            }
    
            /// <summary>
            /// 往ini配置文件写入整型数据
            /// </summary>
            /// <param name="section">节名</param>
            /// <param name="key">键名</param>
            /// <param name="val">要写入的数据</param>
            /// <returns>成功true,失败false</returns>
            public static bool WriteIniInt(string section, string key, int val) {
                return WriteIniString(section, key, val.ToString());
            }
        }

    读取:

    tbUserName.Text = IniFileHelper.GetIniString("Config", "UserName");

    写入:

    IniFileHelper.WriteIniString("Config", "UserName", User.username);
  • 相关阅读:
    最全面的Java面试大纲及答案解析(建议收藏)
    开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~
    肝一波 ~ 手写一个简易版的Mybatis,带你深入领略它的魅力!
    2020年6月最新程序员工资统计,似乎又跌了,扎心!
    Redis企业级数据备份与恢复方案
    如何短时间内快速通过Java面试
    看完这篇还不懂Redis的RDB持久化,你们来打我!
    什么,容器太多操作不过来?我选择Docker Compose梭哈
    面试官:你说你精通 Docker,那你来详细说说 Dockerfile 吧
    30分钟快速上手Docker,看这篇就对了!
  • 原文地址:https://www.cnblogs.com/len0031/p/11257218.html
Copyright © 2011-2022 走看看