122 lines
2.9 KiB
C
122 lines
2.9 KiB
C
|
#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_only(key) = false,返回false
|
|||
|
* 文件不存在,返回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_only(key) = false,返回false
|
|||
|
* 文件不存在,返回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
|
|||
|
* 找到key,并赋值给value
|
|||
|
*/
|
|||
|
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;
|
|||
|
};
|