博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在C#中读写INI配置文件(转)
阅读量:6836 次
发布时间:2019-06-26

本文共 2306 字,大约阅读时间需要 7 分钟。

在作应用系统开发时,管理配置是必不可少的。例如数据库服务器的配置、安装和更新配置等等。由于Xml的兴起,现在的配置文件大都是以xml文档来存储。比如Visual Studio.Net自身的配置文件Mashine.config,Asp.Net的配置文件Web.Config,包括我在介绍Remoting中提到的配置文件,都是xml的格式。

传统的配置文件ini已有被xml文件逐步代替的趋势,但对于简单的配置,ini文件还是有用武之地的。ini文件其实就是一个文本文件,它有固定的格式,节Section的名字用[]括起来,然后换行说明key的值:

[section]
key=value

如数据库服务器配置文件:

DBServer.ini

[Server]

Name=localhost
[DB]
Name=NorthWind
[User]
Name=sa

在C#中,对配置文件的读写是通过API函数来完成的,代码很简单:

using System;using System.Text;using System.IO;using System.Runtime.InteropServices;namespace PubOp{    public class OperateIniFile    {        #region API函数声明        [DllImport("kernel32")]//返回0表示失败,非0为成功        private static extern long WritePrivateProfileString(string section,string key,            string val,string filePath);        [DllImport("kernel32")]//返回取得字符串缓冲区的长度        private static extern long GetPrivateProfileString(string section,string key,            string def,StringBuilder retVal,int size,string filePath);        #endregion        #region 读Ini文件        public static string ReadIniData(string Section,string Key,string NoText,string iniFilePath)        {            if(File.Exists(iniFilePath))            {                StringBuilder temp = new StringBuilder(1024);                GetPrivateProfileString(Section,Key,NoText,temp,1024,iniFilePath);                return temp.ToString();            }            else            {                return String.Empty;            }        }        #endregion        #region 写Ini文件        public static bool WriteIniData(string Section,string Key,string Value,string iniFilePath)        {            if(File.Exists(iniFilePath))            {                long OpStation = WritePrivateProfileString(Section,Key,Value,iniFilePath);                    if(OpStation == 0)                {                    return false;                }                else                {                    return true;                }            }            else            {                return false;            }        }        #endregion    }}

简单说明以下方法WriteIniData()和ReadIniData()的参数。

Section参数、Key参数和IniFilePath不用再说,Value参数表明key的值,而这里的NoText对应API函数的def参数,它的值由用户指定,是当在配置文件中没有找到具体的Value时,就用NoText的值来代替。

原文地址:http://www.cnblogs.com/wayfarer/archive/2004/07/16/24783.html

 

转载于:https://www.cnblogs.com/leebokeyuan/p/9115072.html

你可能感兴趣的文章
【cl】找不到火狐Cannot find firefox binary in PATH
查看>>
移动端无法复制:使用clipboard.js碰到的一个小问题
查看>>
程序员常去的103个网站
查看>>
联想的amd电脑,Debian8.8开机后亮度值始终最大,尝试过各种方法,始终无法解决,最后debian8.8在安装开源驱动后,成功调节...
查看>>
debian8修改kde桌面语言
查看>>
PHP对于数据库的基本操作——更新数据
查看>>
How HashMap works in Java
查看>>
洛谷P2057 善意的投票
查看>>
UVa11401 Triangle Counting
查看>>
MongoDB
查看>>
深入Android 【三】 —— 组件入门
查看>>
Matlab DIP(瓦)ch11表示与描述练习
查看>>
【Echo】实验 -- 实现 C/C++下TCP, 服务器/客户端 通讯
查看>>
16、SpringBoot-CRUD错误处理机制(3)
查看>>
7、NIO--字符集Charset
查看>>
2-JSF html标签
查看>>
队列queue 代码
查看>>
Python-mysql 权限 pymysql 注入共计
查看>>
HashSet、LinkedHashSet、TreeSet
查看>>
ios 远程推送
查看>>