一、INI文件介绍
ini文件是Initialization File的缩写,即初始化文件,是系统配置文件所采用的存储格式。用来配置应用软件,以实现不同用户的要求,用来存放软件信息、注册表信息的,由节、键、值组成。
[Section Name] //节
KeyName=value //键=值
[Section_Name]
KeyName1=Value1
KeyName2=Value2
节点 [Section_Name] 表示一个段落,因为INI文件通常是项目中所共用的, [Section_Name] 段名用来区分不同用途的参数区。KeyName1=Value1 表示一个参数名和值。
二、QSettings读取INI文件
用到QSettings类
//创建配置文件操作对象
QSettings *INIFile = new QSettings("E:/Demo/config.ini", QSettings::IniFormat);
//设置编码方式,解析ini配置文件中文问题
//Windows编码格式"GBK",Linux编码格式"UTF-8"
INIFile->setIniCodec("GBK");
//取值
//方式一、"节点名/键名",得到值
QString strValue = INIFile->value("config/KeyName").toString();
qDebug() << strValue;
//方式二、ini文件中有多个节点
//设置当前节点名,以下操作都在本节点中
INIFile->beginGroup("config");
QStringList keys = INIFile->childKeys();
for(int i = 0; i < keys.count(); i++)
{
QString strValue = INIFile->value(keys.at(i)).toString();
qDebug() << keys.at(i) << strValue;
}
INIFile->endGroup();
//方式三、ini文件有多个节点,获取所有节点
QStringList SectionGroups = INIFile->childGroups();
for(int i = 0; i < SectionGroups.count(); i++)
{
INIFile->beginGroup(SectionGroups.at(i));
QStringList keys = INIFile->childKeys();
for(int j = 0; j < keys.count(); j++)
{
QString strValue = INIFile->value(keys.at(i)).toString();
qDebug() << keys.at(i) << strValue;
}
INIFile->endGroup();
}
三、QSettings写入INI文件
通过setValue函数
QSettings *INIFile = new QSettings("E:/Demo/config.ini", QSettings::IniFormat);
INIFile->setIniCodec("UTF-8");
//方式一、"节点名/键名"
QString strValue = INIFile->setValue("config/KeyName", "chinese");
//方式二
INIFile->beginGroup("config");
INIFile->setValue("KeyName2", "english");
INIFile->endGroup();
##配置文件内容
[config]
KeyName = 中文
KeyName1 = 1993
KeyName2=wer