#include "config.h" #include 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; } bool ConfigIni::set_xml_path(const std::string& path) { if (ini_.IsEmpty()) { return false; } ini_.SetValue("Basic", "xml_path", path.c_str()); if (ini_.SaveFile(ini_path_.c_str()) != SI_OK) { 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; } 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; }