OneLevelXmlOpr/src/config.cpp

51 lines
1.1 KiB
C++
Raw Normal View History

#include "config.h"
#include <filesystem>
namespace fs = std::filesystem;
bool ConfigIni::set_work_exe(const std::string& dir)
{
work_dir_ = dir;
auto ini_path = fs::path(work_dir_).parent_path().append("xmlopr.ini");
if (!fs::exists(ini_path)) {
return false;
}
ini_path_ = ini_path.string();
if (!parse_ini()) {
return false;
}
return true;
}
2024-05-20 07:58:51 +08:00
bool ConfigIni::set_xml_path(const std::string& path)
{
if (ini_.IsEmpty()) {
2024-05-20 07:58:51 +08:00
return false;
}
ini_.SetValue("Basic", "xml_path", path.c_str());
2024-05-20 07:59:58 +08:00
if (ini_.SaveFile(ini_path_.c_str()) != SI_OK) {
2024-05-20 07:58:51 +08:00
return false;
}
return true;
}
OprBase ConfigIni::get_config()
{
return opr_base_;
}
bool ConfigIni::parse_ini()
{
if (ini_.LoadFile(ini_path_.c_str()) != SI_OK) {
return false;
}
2024-05-19 23:33:06 +08:00
ini_.SetUnicode();
opr_base_.node_path = ini_.GetValue("Basic", "oper_node");
opr_base_.purpose = ini_.GetValue("Basic", "purpose");
opr_base_.the_node = ini_.GetValue("Basic", "the_node");
opr_base_.xml_path = ini_.GetValue("Basic", "xml_path");
return true;
}