yhkylin-backup-tools/common/mylittleparse.h

122 lines
2.9 KiB
C
Raw Normal View History

2022-11-01 10:40:05 +08:00
#pragma once
#include <QFile>
class QString;
class MyLittleParse {
public:
enum error_enum {
DEFAULT,
OPEN_FILE_FAIL,
KEY_EXITS, //key存在value为空, 适用于add
REPEAT, //key和value都存在且重复适用于mod
KEY_NOEXITS, //不能找到key, 适用于find
SUCCESS
};
MyLittleParse(const QString& path);
~MyLittleParse();
/**
* @brief add
* @param key
* @param value
* @param e
* @return
*
* false e = OPEN_FILE_FAIL
* key不存在, key=value, e = SUCCESS
* key存在= mod
* key存在=false, e = KEY_EXISTS
*
*/
bool add(const QString& key, const QString& value, error_enum& e);
bool add(const QString& key, const QString& value);
bool add(const QString&& key, const QString&& value);
/**
* @brief Add
* @param key
* @param value
* @return
*
* key不存在, key=value
* key存在 mod
*
*/
bool Add(const QString& key, const QString& value);
/**
* @brief del
* @param key
* @param e
* @return
*
* find_onlykey = falsefalse
* false e = OPEN_FILE_FAIL
*
*/
bool del(const QString& key, error_enum& e);
bool del(const QString& key);
bool del(const QString&& key);
/**
* @brief mod
* @param key
* @param value
* @param e
* @return
*
* find_onlykey = falsefalse
* false e = OPEN_FILE_FAIL
* key对应的值和value相等false e = REPEAT
*/
bool mod(const QString& key, const QString& value, error_enum& e);
bool mod(const QString& key, const QString& value);
bool mod(const QString&& key, const QString&& value);
/**
* @brief Mod
* @param key
* @param value
* @return
*
*
* key对应的值和value相等true
*/
bool Mod(const QString& key, const QString& value);
/**
* @brief find
* @param key
* @param value
* @param e
* @return
*
* false e = OPEN_FILE_FAIL
* keyvalue
*/
bool find(const QString& key, QString& value, error_enum& e);
bool find(const QString& key, QString& value);
bool find(const QString&& key, QString&& value);
/**
* @brief find_only
* @param key
* @param e
* @return
* false e = OPEN_FILE_FAIL
*/
bool find_only(const QString& key, error_enum& e);
bool find_only(const QString& key);
bool find_only(const QString&& key);
error_enum getErrEnum() const;
QString getErrMsg();
private:
QFile* file;
error_enum m_e;
};