一个ini文件读写类的设计和实现

本文介绍了一种用于处理INI文件的自定义类的设计思路,包括如何读取和更新INI文件中的键值对。通过使用特定的数据结构,该类能够有效地进行INI文件的读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

       决定自己写一个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的顺序,因此并不适合用来写文件。为追求效率,可以直接对文件进行操作。

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值