加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#创建ini文件、读取值、修改值

发布时间:2020-12-15 17:51:54 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 int iBaudRate = InIHelper.ReadConfigint("COM_SETUP","波特率") InIHelper类: public class InIHelper { private static string FileName = Applic

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

int iBaudRate = InIHelper.ReadConfig<int>("COM_SETUP","波特率")
InIHelper类:
public class InIHelper
    {
        private static string FileName = Application.StartupPath + "AppConfig.ini";
        /// <summary>
        /// 读取配置文件
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="section"></param>
        /// <param name="key"></param>
        /// <returns></returns>
        public static T ReadConfig<T>(string section,string key)
        {
            if (File.Exists(FileName))
            {
                IniFile f = new IniFile(FileName);
                string value = f.ReadContentValue(section,key);

                if (String.IsNullOrWhiteSpace(value))
                    return default(T);

                if (typeof(T).IsEnum)
                    return (T)Enum.Parse(typeof(T),value,true);

                return (T)Convert.ChangeType(value,typeof(T));
            }
            else
            {
                return default(T);
            }
        }

        /// <summary>
        /// 写配置文件
        /// </summary>
        /// <param name="section"></param>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public static void WriteConfig(string section,string key,string value)
        {
            //如果文件不存在,则创建
            if (!File.Exists(FileName))
            {
                using (FileStream myFs = new FileStream(FileName,FileMode.Create)) { }
            }

            IniFile f = new IniFile(FileName);
            f.WriteContentValue(section,key,value);
        }
    }

public class IniFile
    {
        public string Path;

        public IniFile(string path)
        {
            this.Path = path;
        }

        /// <summary>
        /// 写入INI文件
        /// </summary>
        /// <param name="section">节点名称[如[TypeName]]</param>
        /// <param name="key">键</param>
        /// <param name="val">值</param>
        /// <param name="filepath">文件路径</param>
        /// <returns></returns>
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section,string val,string filepath);

        /// <summary>
        /// 读取INI文件
        /// </summary>
        /// <param name="section">节点名称</param>
        /// <param name="key">键</param>
        /// <param name="def">值</param>
        /// <param name="retval">stringbulider对象</param>
        /// <param name="size">字节大小</param>
        /// <param name="filePath">文件路径</param>
        /// <returns></returns>
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section,string def,StringBuilder retval,int size,string filePath);

        /// <summary>
        /// 写入
        /// </summary>
        /// <param name="section"></param>
        /// <param name="key"></param>
        /// <param name="iValue"></param>
        public void WriteContentValue(string section,string iValue)
        {
            WritePrivateProfileString(section,iValue,this.Path);
        }

        /// <summary>
        /// 读取INI文件中的内容方法
        /// </summary>
        /// <param name="Section">键</param>
        /// <param name="key">值</param>
        /// <returns></returns>
        public string ReadContentValue(string Section,string key)
        {
            StringBuilder temp = new StringBuilder(1024);
            GetPrivateProfileString(Section,"",temp,1024,this.Path);
            return temp.ToString();
        }
    }

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读