【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文件,其中存儲的數據結構如上圖所示。