Qt项目第五弹-公共组件(外部文件读取①)

文章介绍了如何使用C++的FileUtils类进行INI文件的读写操作,以及为何声明为静态方法并强调了良好的编码习惯,包括参数检查和命名规范。同时提到了注册表信息的读写,主要借助QSettings库。
摘要由CSDN通过智能技术生成
  • 依照惯例,我比较喜欢生成一个类来专门处理项目中可能涉及的文件解析,当然也方便后续其他项目使用可以直接拿过去,解耦大发好啊

有请本次的主角FileUtils

#ifndef FILEUTILS_H
#define FILEUTILS_H

#include <QObject>

class FileUtils : public QObject
{
    Q_OBJECT
public:
    explicit FileUtils(QObject *parent = nullptr);

public:

    /**
    *  @Brief:      ini文件读写
    *  @Author:     springIce
    *  @Date:       2024-02-06
    **/
    static QVariant iniFileRead(const QString &filePath, const QString &group, const QString &key);
    static bool iniFileWrite(const QString &filePath, const QString &group, const QString &key, const QString &val);
};

#endif // FILEUTILS_H

下面正式开始各种文件解析降解了

INI文件读取与写入

🚩🚩🚩

有请我的好兄弟 QSettings,帮助我读取和写入ini文件

  • 头文件函数如下所示🍎🍎
/**
    *  @Brief:      ini文件读写
    *  @Author:     springIce
    *  @Date:       2024-02-06
    **/
    static QVariant iniFileRead(const QString &filePath, const QString &group, const QString &key);
    static bool iniFileWrite(const QString &filePath, const QString &group, const QString &key, const QString &val);
  • 为啥要声明为static啊,别问,问就是方便使用。
  • 下面来看看函数的具体实现吧🍉🍉
QVariant FileUtils::iniFileRead(const QString &filePath, const QString &group, const QString &key)
{
    QVariant res;

    if (filePath.isEmpty() || key.isEmpty()) {
        qDebug() << "necessary params are empty";
        return res;
    }

    QSettings settings(filePath, QSettings::IniFormat);

    settings.beginGroup(group);
    res = settings.value(key);
    settings.endGroup();

    return res;
}

bool FileUtils::iniFileWrite(const QString &filePath, const QString &group, const QString &key, const QString &val)
{
    if (filePath.isEmpty() || key.isEmpty() || val.isEmpty()) {
        qDebug() << "necessary params are empty";
        return false;
    }

    if (group.isEmpty()) {
        qWarning() << "your group is General";
    }

    QSettings settings(filePath, QSettings::IniFormat);
    if (!settings.isWritable()) {
        qDebug() << "ini file can't be writed";
        return false;
    }

    settings.beginGroup(group);
    settings.setValue(key, val);
    settings.endGroup();

    return true;
}

简单说几句啊:
1、所见即所得,函数的命名不要求华丽,但是要能一眼看出来是干啥的;当然命名也不能太长,谁家函数命名一大串,看起来多费劲
2、对函数的输入输出要严格把控,输入进来的不能更改的参数一定要加const修饰,养成良好的编码习惯毕竟收益的是自己不;
3、有必要的话,一定要在函数最开始的地方对入参进行一些判空或者基本操作,保证入参不会对后续逻辑产生影响,最严重的的就是导致崩溃了,检查起来可是很头疼的;

🍭以上就是ini文件读写与写入的基本逻辑代码了,下面就是调用和具体现象了

	//记得引入头文件哦
	QString iniFilePath = "E:\\Qt\\Project\\Logout\\testFile\\myIniFile.ini";
    FileUtils::iniFileWrite(iniFilePath, "Custom", "KHGTHH", "you_are_right");

    qDebug() << FileUtils::iniFileRead(iniFilePath, "Custom", "KHGTHH").toString();

在这里插入图片描述
在这里插入图片描述


注册表信息读取与写入

🚩🚩🚩

其实也是使用QSettings,和ini文件读写大同小异,不同点就是修改format格式就好

QSettings settings(filePath, QSettings::NativeFormat);

📍📍偷偷告诉你一个利器,那自然是qt本身的帮助搜索啊,很好用很好用的
在这里插入图片描述


今天就先到这里,文章太长类一次性看起来也比较费劲,下次下次一定,期待下一弹的json和xml文件解析吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值