【QT】INI文件读写类IniApi封装
- 前言
- 实现
- INI文件写入方法
- INI文件读取方法
- 测试
前言
INI格式文件是一种纯文本格式,使用方括[]定义节(Section),每个节下包含键值对,如下图所示。该格式文件简单易读易编辑。而且在所有操作系统上表现相同,跨平台兼容。基于以上特点,INI格式文件被广泛适用于配置文件的使用。在QT中,提供了QSettings
类用于应用程序配置的读写,可通过指定QSettings::IniFormat
以表示INI格式。因此,本博文针对官方类的提供,对INI格式文件读写类IniApi进行封装,以便于后续的复用。
实现
INI文件写入方法
首先,进行INI文件写入方法的实现,如下:
void IniApi::saveInfor(const QString &ip, const QString &port)
{QSettings settting(QString("%1/Databases/ota.ini").arg(qApp->applicationDirPath()),QSettings::IniFormat);settting.setValue("ip",ip);settting.setValue("port",port);
}
在该方法中,由于QSettings类的使用,当ota.ini没有存在时候,会先创建该文件,然后进行信息的存储。而且qApp->applicationDirPath()
的使用,可以获取应用程序可执行文件所在目录的路径。因此,该方法的作用,即在应用程序所在目录,创建Databases/ota.ini文件,然后进行ip和port键值对信息的存储,ota.ini文件存储信息的结构如上图所示。
需要注意一点,qApp是QT提供的一个全局指针,指向当前应用程序的QApplication对象,因此在使用时候,需要引用#include <QCoreApplication>
。
INI文件读取方法
其次,进行INI文件读取方法的实现,如下:
void IniApi::readInfor(QString &ip, QString &port)
{QSettings settting(QString("%1/Databases/ota.ini").arg(qApp->applicationDirPath()),QSettings::IniFormat);ip=settting.value("ip").toString();port =settting.value("port").toString();
}
该方法的作用用于读取INI文件中的键值对,然后将值存入引用变量,QSettings和qApp的使用与INI文件写入方法相同,这里不进行重复介绍。
测试
通过栈上变量方式进行对象创建,如下:
IniApi ini;
ini.readInfor(ip,port);
ini.saveInfor(ip,port);
通过运行,最后在可执行EXE文件目录下,创建Databases文件夹,如下图所示。并在文件夹中创建ota.ini文件,其中存储的数据结构如上图所示。