关于ini文件格式的一点主意事项

为了在C#中读取ini文件,于是引入了GetPrivateProfileString函数

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

        /// <summary>
        /// INI文件的读操作函数
        /// </summary>
        /// <param name="section">INI文件中的段落名称</param>
        /// <param name="key">INI文件中的关键字</param>
        /// <param name="def">无法读取时候时候的缺省数值;</param>
        /// <param name="retVal">读取数值;</param>
        /// <param name="size">数值的大小;</param>
        /// <param name="filePath">INI文件的完整路径和名称。</param>
        /// <returns></returns>
        [DllImport("kernel32")]
        public static extern int GetPrivateProfileString(string section,
            string key, string def, StringBuilder retVal, uint size, string filePath);
郁闷的是无论如何都读不出来ini文件里的内容。索性到网上搜索,关于函数使用方法的说明都没错呀,我也照着做了。可还是读不出东西来,

难道是不能正常打开文件?

    于是用C#中的文件操作函数,试了,没问题能正常打开。

难道是ini文件中的[section]或者key值不对?

    仔细检查后确认与没有问题

那key=value中间的“=”两边要有空格?

   加上或者去掉或者任意一边又空格,还是不行。

。。。。。

又去google,还是没有进展,泄气呀!

于是给自己定下个最终期限,再google一次,这次搜english的说明。

找了又找,最终在一个blog的不显眼的地方,终于找的了最终答案:

ini文件的第一行不能是有效内容(不能为section)。

豁然开朗,突然想起一句警句。

果然,皇天不负有心人!

有志者事竟成,破釜沉舟百二秦关终属楚

苦心人天不负,卧薪尝胆三千越甲可吞吴

原文地址:https://www.cnblogs.com/leelike/p/1946061.html