c#关于ini配置文件的烦恼

c#关于ini配置文件的烦恼,第1张

ini是配置文件的一种,配置文件可以多种多样的,包括xml。

先说kernel32.dll,它是windows内核心动态库,也就是我们说的动态库函数,该函数时windows实现内核的基础,在每个windows版本中都在集成,位置在system32下。利用C#的导入功能可以调用window库,也就是我们常说的API编程。如果是kernel32或user32等类似库时不须下载,直接就可以调用的。

再说配置文件,ini与xml均是文本级配置文件,类似的还是c#的自身配置文件config(其实它也是一个xml文件)。

ini文件的特点是每个配置占一行,如果有注释,也要单独占一行。配置内容与配置名称用=号分割,如果配置键为两个时,中间用分号分割,功能块用方括号说明。

如:

[.Database]

Database=127.0.0.1

//这是注释

UserName=kusirp21Password=123

[.File]

Directory=

//没有配置时等号后可以为空。

这种配置文件在windows系列中常见,一般是用kernel32进行解析。至于说其过时,这倒未必——当前的win8系统中还是使用的ini进行配置的,如win.ini等文件。系统中并未使用xml文件[非系统软件除外,系统软件并非指的是安装好系统就存在的软件,如纸牌游戏等均不是系统文件,而是系统附带文件,但其实也是ini保存的游戏结果]。

xml配置也比较常见,在开发的各类软件中,一般都会采用xml文件。它其是就是扩展标签语言。它需要一个根结构[做配置文件时],如:

<?xml version="1.0" charset="utf-8" ?>

<Configurations>

<Database>

<database>127.0.0.1</database>

<username>sa</usename>

</Database>

</Cnfigurations>

这种配置文件较为灵活的是,可以增加不同的属性,以实现配置的细微差别。与ini对比另一个优势是,可以实现多级配置结构,因为xml存在节点树结构关系。同时可以根据属性不同性实现多个相同的配置如:

<?xml version="1.0" charset="utf-8" ?>

<Configurations>

<Database type="config1">

<database>127.0.0.1</database>

<username>sa</usename>

</Database>

<Database type="config2">

<database>127.0.0.1</database>

<username>sa</usename>

</Database>

</Cnfigurations>

所以说,它存在灵活的优点。配置方式也十分灵活。相比之下ini的配置相形见拙了!

但并不是说ini配置没有任何优点的,很多人都以为xml配置文件是发展方向,其实ini同样挑着大梁!它的优点却是xml所不具备的!

ini的读取十分快速,单配时十分灵活,这是xml所不具备的!

我们知道使用xml配置必须经过xml解析,然后才可以得到相应的配置信息。而这一解析过程使用xml的速度降低。而ini只读入即可进行处理,尤其在随机配置时。比如我当前只须要配置信息中的一个配置信息(或是读取使用,或时写入配置),如果是xml不管如果都要解析为xml对象后才可以进行处理,而ini如果是读取,一般可以快速定位到[]节结构,最差也只是将配置文件读取完全而已。写入时,只须写在节结构后直接增加,如果没有节结构,只须要对文件进行append即可,甚至读取都不要,速度与效率上xml根本无法匹敌!这也是ini为何存在的原因。

所以ini并非过时,在windows8系统下大量存在——难以想象微软会在自己的系统中在量使用过时的东西么?倒是手机的安桌系统中大量使用xml,这种情况只能说明xml应用越来越广泛,但并非说明ini已经过时。

梦里寻他已经给出了ini通过windows API的处理,还是不错的。倒是应用程序级配置能不用则不用,如果从事开发,你就知道为什么了!应用程序级配置指的是那些与应用程序同名,后边加一个xml的文件,一般我们做到配置集中管理时,使用app.config而不是使用“文件名.exe.xml”或“文件名.dll.xml”。在项目属性中增加配置,直接会导致生成应用程序级配置文件的生成。如果有些固定配置,如果图片之类的,一般不涉及修改的,建议使用资源包进行完成。资源包内可以增加文件配置文件[配置级],也可以直接增加属性。倒是直接使用项目属性配置是最差的一种做法。

配置文件里放程序启动时需要对程序进行配置的信息,比如我们平时启动刚安装的一款软件时,会出现一些填写注册信息的控件,并询问您是否要勾选记住密码、下次自动登录等的复选框(比如QQ、微信),这些注册信息就被写进了相应程序的配置文件里,当程序下次在启动时就会自动读取配置文件,对程序进行配置,这样我们就不用每次都填写这些注册信息,程序就会自启动了。个人觉得这好像是配置文件在我们开发软件时的一个运用,由于能力有限,暂且只能回答到这。

在下曾经写过一个连接数据的程序,将数据库的连接信息写入一个配置文件中(.ini后缀文件或.xml后缀的文件),然后在程序中对这个配置文件进行读写,就可以达到自动连接数据库或修改数据库原有的连接信息的目的。

希望以上回答is helpful!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8140599.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存