zoukankan      html  css  js  c++  java
  • 读写INI配置文件

    在一些C/S程序中我们经常会使用INI配置文件

           优点:1.灵活。

                   2.相对于一些数据量的程序,相对使用数据库更节约资源。

        /// <summary>
        /// 配置文件操作类
        /// </summary>
        internal static class OperConfigFile
        {
            private static string _filePath = string.Format("{0}\{1}", Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "kaiteConfig.ini");
            
            [DllImport("kernel32", CharSet = CharSet.Unicode)]
            private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
    
            //xiexie
            [DllImport("kernel32", CharSet = CharSet.Unicode)]
            private static extern int WritePrivateProfileString(string section, string key, string val, string filePath);
    
            /// <summary>
            /// 对ini文件进行读操作的函数
            /// </summary>
            /// <param name="Section">选择项</param>
            /// <param name="Key">关键值</param>
            /// <param name="TextLength">需要返回文本的最大长度</param>
            /// <returns>返回文本值</returns>
            public static string IniReadValue(string Section, string Key, int TextLength)
            {
                StringBuilder temp = new StringBuilder(TextLength);
    
                int i = GetPrivateProfileString(Section, Key, "", temp, TextLength, _filePath);
    
                return temp.ToString();
            }
    
            /// <summary>
            /// 对ini文件进行写操作的函数
            /// </summary>
            /// <param name="Section">选项</param>
            /// <param name="Key">关键字</param>
            /// <param name="Value"></param>
            public static void IniWriteValue(string Section, string Key, StringBuilder Value)
            {
                WritePrivateProfileString(Section, Key, Value.ToString(), _filePath);
            }
    
            /// <summary>
            /// 对ini文件进行读操作的函数
            /// </summary>
            /// <param name="Section">选择项</param>
            /// <param name="Key">关键值</param>
            /// <param name="TextLength">需要返回文本的最大长度</param>
            /// <returns>返回文本值</returns>
            private static string IniReadValue(string Section, string Key, int TextLength, string path)
            {
                StringBuilder temp = new StringBuilder(TextLength);
    
                int i = GetPrivateProfileString(Section, Key, "", temp, TextLength, path);
    
                return temp.ToString();
            }
    
            /// <summary>
            /// 写日志
            /// </summary>
            /// <param name="fileName">文件名</param>
            /// <param name="context">内容</param>
            public static void WriteLog(string fileName, string context)
            {
                try
                {
                    if (IniReadValue("LogConfig", "log", 10, string.Format("{0}\{1}", Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "CQFJ_CONFIG.ini")) == "1")
                    {
                        string filePathTemp = string.Format("{0}\日志\SysLog_{1}_{2}.txt", Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), DateTime.Now.ToString("yyyy-MM-dd"), fileName);
    
                        WritePrivateProfileString(DateTime.Now.Date.ToString(), DateTime.Now.TimeOfDay.ToString(), context, filePathTemp);
                    }
                }
                catch { }
            }
        }
  • 相关阅读:
    发送信号控制 nginx
    常用技术搜索关键字
    boost helloworlld
    快速认识boost 数据类型转换
    php helloworld
    标准模板库(STL)学习指南之List容器
    c 可变参数 可变 形参 不确定 (2)
    C宏——智者的利刃,愚者的恶梦!
    boost常用库案例
    c++ 模板
  • 原文地址:https://www.cnblogs.com/shikangjie/p/5670955.html
Copyright © 2011-2022 走看看