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

本文共 2269 字,大约阅读时间需要 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的值来代替。

 NoText 可以为null或""

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

你可能感兴趣的文章
BZOJ2476: 战场的数目(矩阵快速幂)
查看>>
npm 主要命令
查看>>
搞定所有的跨域请求问题 jsonp CORS
查看>>
MyBatis Spring整合配置映射接口类与映射xml文件
查看>>
献给程序员之如何与陌生人交谈
查看>>
需求:需求获取技术之 观察
查看>>
#大学#SQL基础学习笔记(01)
查看>>
电子书下载:Beginning C++ Through Game Programming, 3rd Edition
查看>>
ucos-ii学习环境的搭建
查看>>
电容屏、电阻屏基础知识
查看>>
程序员应知道的12件事
查看>>
Video: Connecting Android applications with DataSnap Server – Delphi Conference Brazil 2010
查看>>
电子书下载:iPhone and iPad Apps for Absolute Beginners iOS 5 Edition
查看>>
innosetup安装之前关闭进程
查看>>
关于RDA远程访问数据库的一个例子(亲手完成,不容易啊)
查看>>
原始方法(失去光标验证数据库)
查看>>
Cookies揭秘 [Asp.Net, Javascript]
查看>>
检测远程URL是否存在
查看>>
TCP/IP笔记 三.运输层(2)——TCP 流量控制与拥塞控制
查看>>
Select的动态取值(Text,value),添加,删除。兼容IE,FireFox
查看>>