1. 程式人生 > >QT ini配置檔案的讀寫(使用QTextStream類)

QT ini配置檔案的讀寫(使用QTextStream類)

1、寫ini配置檔案

bool saveFile(const QString &fileFullName)
{
if(fileFullName.isEmpty())
return false;
QFile    fileOut;
QTextStream      outStream;
fileOut.setFileName(fileFullName);
if(!fileOut.open(QIODevice::WriteOnly))
{
qDebug("檔案:%s寫入失敗!\n",qPrintable(fileFullName));
return false;
}
outStream.setDevice(&fileOut);
outStream << QObject::tr("[Config]\r\n");
outStream << QObject::tr("Abstract=testName\r\n"));
outStream << QObject::tr("Directory=%1\r\n").arg(QCoreApplication::applicationDirPath());
fileOut.close();
return true;
}

2、讀取ini配置檔案

bool loadFile(const QString &fileFullName)
{
if(fileFullName.isEmpty())
return false;
QFileInfo fileInfo(fileFullName);
if(!fileInfo.exists())//判斷檔案是否存在
{
qDebug("配置檔案不存在,讀取失敗!\n");
return false;
}
QFile       fileIn;
QTextStream        *inStream;
QByteArray          fileByteArray;
int             fileSize;
char                fileBuf[CONFIG_FILE_MAX_SIZE];

fileIn.setFileName(fileFullName);
if(!fileIn.open(QIODevice::ReadOnly))
{
qDebug("檔案:%s讀取失敗!\n",qPrintable(fileFullName));
return false;
}

fileSize = fileIn.read(fileBuf, CONFIG_FILE_MAX_SIZE);
fileIn.close();

/* 讀取到類物件中 */
fileByteArray = QByteArray::fromRawData(fileBuf, fileSize);
inStream = new QTextStream(fileByteArray, QIODevice::ReadOnly);
QString        tempString;
tempString = inStream->readLine();
if(tempString != tr("[Config]"))
{
qDebug("配置檔案組名錯誤!\n");
return false;
}
while (!(inStream->atEnd()))
{
tempString = inStream->readLine();
if(tempString.startsWith(tr("Abstract=")))
QString testName = tempString.mid(9);
else if(tempString.startsWith(tr("Directory=")))
QString Directory = tempString.mid(10);
else
{
qDebug("無效項!\n");
}
}
delete inStream;
fileIn.close();
return true;

}

3、配置檔案格式

[Config]
Abstract=3sdddsds33211as
Directory=C:\Users\Administors\Desktop\新建資料夾 (2)

4、QSettings和QTextStream的區別

用QSettings儲存純英文配置檔案較為方便,操作簡單,無法處理組名和項名是中文的情況;

用QTextStream可以處理中文內容,且不用特殊處理,實際上,QTextStream是一個通用的文字檔案讀取類,這裡只是借用他來儲存ini檔案。

此外,對於檔案路徑的儲存,QSettings會自動多加入一個'\',讀取的時候會自動去掉一個,而QTextStream不會對路徑字串做任何操作。比如路徑"C:\Users\Administors

\Desktop",用QSettings儲存到檔案的是"C:\\Users\\Administors\\Desktop",而QTextStream儲存的是"C:\Users\Administors\Desktop"。

相關推薦

C++針對ini配置檔案大全

ini檔案(Initialization file),這種型別的檔案中通常存放的是一個程式的初始化資訊。ini檔案由若干個節(Section)組成,每個Section由若干鍵(Key)組成,每個Key可以賦相應的值。讀寫ini檔案實際上就是讀寫某個的Section中相應的K

QT ini配置檔案(使用QTextStream)

1、寫ini配置檔案 bool saveFile(const QString &fileFullName) {if(fileFullName.isEmpty())return false;Q

python 配置檔案

轉自: orientlu 的《python 配置檔案讀寫》 原址:https://www.jianshu.com/p/aadd86f8d38e     前言 將程式碼中的配置項抽取到配置檔案中,修改配置時不需要涉及到程式碼修改,避免面對一堆令人抓狂的 magi

.NET平臺開源專案速覽(1)SharpConfig配置檔案元件

在.NET平臺日常開發中,讀取配置檔案是一個很常見的需求。以前都是使用System.Configuration.ConfigurationSettings來操作,這個說實話,搞起來比較費勁。不知道大家有沒有同感。所以更多時候我還是喜歡使用開源的東西,更加方便簡潔,也穩定。省去自己的麻煩。今天就介紹一個非常精緻

android 檔案工具

public static String readFile(File file) throws IOException{FileInputStream inputStream = new FileInputStream(file);int len=inputStream.available();byte []

C++ 配置檔案

void CAamsProtocol::WriteConfig() { TCHAR tcExePath[MAX_PATH] = {0}; ::GetModuleFileName(NULL, tcExePath, MAX_PATH); // 設定ini路徑到ex

關於properties配置檔案,追加以及中文亂碼問題

在開發中常用properties檔案來儲存系統配置資訊,下面就properties檔案的讀寫,資訊追加作簡要介紹,順便也解決亂碼問題。 1、首先介紹一下properties類 properties類繼承自Hashtable package com.gmi.

Unity中INI配置檔案的操作工具

using UnityEngine; using System.IO; using System.Collections.Generic; /// <summary> /// unity中對ini配置檔案的操作 /// </summary> public class IniFile {

轉:C#檔案常用介紹

C#檔案讀寫常用類介紹         首先要熟悉.NET中處理檔案和資料夾的操作。File類和Directory類是其中最主要的兩個類。瞭解它們將對後面功能的實現提供很大的便利。      本節先對和檔案系統相關的兩個.NET類進行簡要介紹。   System.IO.Fi

Qt程式.ini配置檔案

       通過QSettings類讀取.ini配置檔案實現對應用程式的初始化配置是一個非常實用的功能。 配置檔案        應用程式的預設引數一般都是在程式碼中就設定好,但是有時候我們去修改

QTini配置檔案以及絕對路徑的使用

讀配置檔案 QString langPath3 = LocaleUtils::getSysHome() + “/conf/fes/simconfig/”; QString conffile2 = QString(“%1abc.ini”).arg(langPa

C++ini配置檔案GetPrivateProfileString WritePrivateProfileStr

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

GetPrivateProfileString、WritePrivateProfileString.ini配置檔案應用例項

應用背景(需求):配置工具(exe)開啟一個prof後,下次該prof將作為預設開啟的prof 分析:當開啟一個檔案後,立刻獲取檔案的檔名,並儲存到 .ini 檔案內,在配置工具的的程式初始化函式中加入

C# 基礎(十三)C# XML配置檔案ini配置檔案的建立、:動態修改IP

一、簡介 傳統的配置檔案ini已有被xml檔案逐步代替的趨勢,這裡主要討論XML配置檔案。 二、ini網址 https://www.cnblogs.com/cncc/p/3415694.html(重點) https://www.cnblogs.com/xmy-007/p/640022

boostini配置檔案

[setting] key1 = 1   key2 = hello 上面是檔案的內容(內容中不能有註釋), 執行如下程式碼: #include <boost/property_tree/ptree.hpp> #include <boost/property

C/C++ 關於如何ini配置檔案 (小結)

讀取 讀取字元   DWORD GetPrivateProfileString(   LPCTSTR lpAppName,        // INI檔案中的一個欄位名[節名]可以有很多個節名   LPCTSTR lpKeyName,        // lpAppName 下的一個鍵名,也就是裡面具體

C# .ini配置檔案

`class Ini { // 宣告INI檔案的寫操作函式 WritePrivateProfileString() [System.Runtime.InteropServices.DllImport("kernel32")] private static extern

WINCE下INI配置檔案

// // Read and write initialization files under wince, support ANSI and UNICODE. // Use refer to Microsoft's initialization file format

C++對ini配置檔案與xml配置檔案

1、ini檔案的讀寫        在遊戲與軟體開發過程中,我們經常會使用ini的配置檔案,為遊戲或軟體配置相關的引數,因此就有必要對ini檔案進行讀寫操作。        下面介紹C++在讀寫ini檔案中,常用到的幾個函式:        1) 讀.ini檔案: DWOR

ini配置檔案

//讀寫ini檔案。 #include <Windows.h> int main(int argc, char *argv[]) { TCHAR szData[MAX_PATH]