首页 > 编程 > .NET > 正文

.net精简框架集下的ini文件读取(C#)

2024-07-10 13:08:48
字体:
来源:转载
供稿:网友

        无论是.net框架集还是.net精简框架集都能非常完美的支持xml文件,并且微软也强烈建议用xml文件取代ini文件,但是在工控领域大部分的工程都是采用ini文件配置的系统信息的。

       以前的隧道管理系统是采用ini文件配置信息的,为了实现兼容,只好在下位机也采用ini文件配置信息。由于wince平台不提供ini文件读取的api函数getprivateprofilestring,所以需要自行编写,前一段时间提供了一个evc版本的ini文件读取,后来在da66x的wince平台上全部采用c#编程,所以不得以需要开发一个c#版本的ini读取函数。

        这是我在原有项目代码的基础上摘编的一个ini读取函数。

//读取ini文件;
        private string getprivateprofilestring(string applicationname, string keyname,string default, string filename)
        {
            
string[] iniitems = new string[0];
            
string inilines;
            
string iniline;
            
int i, j; 
            
try
            {
                
//读取ini文件;
                system.io.streamreader inifile = new system.io.streamreader(filename, system.text.encoding.default);
                inilines 
= inifile.readtoend();
                inifile.close();
            }
            
catch 
            {
                
return default;
            }
            
//以回车符分割,得到每一行
            iniitems = inilines.split(' ');
            
//遍历每一行
            for (i = 0; i < iniitems.getlength(0); i++) 
            {
                
//找到匹配值
                if (iniitems[i].trim().toupper() == '[' + applicationname.trim().toupper() + ']')
                {
                    
//从下一行开始搜索
                    for (j = i + 1; j < iniitems.getlength(0); j++)
                    {
                        iniline 
= iniitems[j].trim();
                        
if (iniline.length > 0)
                        {
                            
//如果找到了另一个段,那么就越段了,则返回默认值
                            if (iniline[0== '[' && iniline[iniline.length - 1== ']'return default; 
                        }
                        
//去掉所有空格
                        iniline = iniitems[j].trimstart().replace(" """);
                        
if (iniline.substring(0, math.min(keyname.length + 1, iniline.length)).toupper() == keyname.toupper() + "=")
                        { 
                            
//如果找到了key匹配
                            return iniitems[j].substring(iniitems[j].indexof('='+ 1);
                        }
                    }
                    
return default;//没有找到key匹配的,则返回默认值
                }
            }
            
return default;//返回默认值
        }       
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表