前言:
决定自己写一个ini读写类,希望对大家能有所帮助。
如有朋友发现问题,请务必致信bicheng.gui@gmail.com
1. 什么是ini文件?
ni 文件是文本文件,中间的数据格式一般为:
[Section1 Name]
KeyName1=value1
KeyName2=value2
...
[Section2 Name]
KeyName1=value1
KeyName2=value2
ini 文件可以分为很多个 Section,每个 Section 的名称用 [] 括起。在一个 Section 中,可以有很多的 Key,每一个 Key可以有一个value并占用一行,格式是 Key = value. 每一行以'#'和';'开头的为注释。
下面是一个实例文件:
[Database]
DBMS=O84 ORACLE
ServerName = 192.168.1.1
Database = db
DatabasePassword = 123456
LogPassword = 123456
[xDatabase]
DBMS = oracle
ServerName=mssql-srv-02
2. 设计思路
ini文件的操作一般为读一个key和更新key的值。删除和增加key的情况比较少见。一般不需要这两个操作。
读写的实现是这样的,先把文件内容读到一个内存里。再在内存里进行读写。出于移植性的考虑,代码将严格遵守标准的规定。因为读文件和写文件需要用到的数据结构不同,因此设计两个类,一个用来读,一个用来写。
读类的实现: 用一个嵌套的map<string,map<string,string>>数据结构来实现。
写类的实现:map和set会默认排序,会打乱section和key的顺序,因此并不适合用来写文件。为追求效率,可以直接对文件进行操作。