|
|
|
|
@ -1,28 +1,53 @@
|
|
|
|
|
#include "util.h"
|
|
|
|
|
|
|
|
|
|
std::array<std::vector<std::string>, 5> read_csv(const std::string& filename) {
|
|
|
|
|
std::array<std::vector<std::string>, 5> array_vectors;
|
|
|
|
|
std::vector<std::string> vec_cmd_get;
|
|
|
|
|
std::vector<std::string> vec_cmd_set_true;
|
|
|
|
|
std::vector<std::string> vec_cmd_set_false;
|
|
|
|
|
std::vector<std::string> vec_option;
|
|
|
|
|
std::vector<std::string> vec_opcision;
|
|
|
|
|
std::ifstream file(filename);
|
|
|
|
|
std::string line;
|
|
|
|
|
|
|
|
|
|
array<vector<string>, 5> read_csv(const string& filename) {
|
|
|
|
|
array<vector<string>, 5> array_vectors;
|
|
|
|
|
vector<string> vec_cmd_get;
|
|
|
|
|
vector<string> vec_cmd_set_true;
|
|
|
|
|
vector<string> vec_cmd_set_false;
|
|
|
|
|
vector<string> vec_option;
|
|
|
|
|
vector<string> vec_opcision;
|
|
|
|
|
ifstream file(filename);
|
|
|
|
|
string line;
|
|
|
|
|
char delimiter = ',';
|
|
|
|
|
getline(file, line);
|
|
|
|
|
while (std::getline(file, line)) {
|
|
|
|
|
std::stringstream stream(line);
|
|
|
|
|
std::string cmd_get;
|
|
|
|
|
std::string cmd_set_true;
|
|
|
|
|
std::string cmd_set_false;
|
|
|
|
|
std::string option;
|
|
|
|
|
std::string opcision;
|
|
|
|
|
while (getline(file, line)) {
|
|
|
|
|
stringstream stream(line);
|
|
|
|
|
string cmd_get;
|
|
|
|
|
string cmd_set_true;
|
|
|
|
|
string cmd_set_false;
|
|
|
|
|
string option;
|
|
|
|
|
string opcision;
|
|
|
|
|
getline(stream, cmd_get, delimiter);
|
|
|
|
|
getline(stream, cmd_set_true, delimiter);
|
|
|
|
|
getline(stream, cmd_set_false, delimiter);
|
|
|
|
|
getline(stream, option, delimiter);
|
|
|
|
|
getline(stream, opcision, delimiter);
|
|
|
|
|
string line_local = stream.str();
|
|
|
|
|
if (line_local.find("\"") != string::npos) {
|
|
|
|
|
string str_delimiter = "\"";
|
|
|
|
|
vector<int> point = find_all(line_local, str_delimiter);
|
|
|
|
|
size_t len = point.size();
|
|
|
|
|
if (len >= 2) {
|
|
|
|
|
int index_start = point[len-2];
|
|
|
|
|
int index_end = point[len-1];
|
|
|
|
|
opcision = line_local.substr(index_start, index_end);
|
|
|
|
|
index_end = opcision.find("\"");
|
|
|
|
|
if (opcision.find("\"") != string::npos) {
|
|
|
|
|
opcision.replace(index_end, opcision.length(), "");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
opcision = "error";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
getline(stream, opcision, delimiter);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
vec_cmd_get.push_back(cmd_get);
|
|
|
|
|
vec_cmd_set_true.push_back(cmd_set_true);
|
|
|
|
|
vec_cmd_set_false.push_back(cmd_set_false);
|
|
|
|
|
@ -37,7 +62,7 @@ std::array<std::vector<std::string>, 5> read_csv(const std::string& filename) {
|
|
|
|
|
return array_vectors;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::string call(std::string cmd) {
|
|
|
|
|
string call(string cmd) {
|
|
|
|
|
FILE *fp;
|
|
|
|
|
int status;
|
|
|
|
|
char path[PATH_MAX] = {0};
|
|
|
|
|
@ -54,3 +79,12 @@ std::string call(std::string cmd) {
|
|
|
|
|
}
|
|
|
|
|
return path;
|
|
|
|
|
}
|
|
|
|
|
vector<int> find_all(string &str_ntp, string substr) {
|
|
|
|
|
size_t index = 0;
|
|
|
|
|
vector<int> sub_index;
|
|
|
|
|
while ((index = str_ntp.find(substr, index)) != std::string::npos) {
|
|
|
|
|
index += substr.length();
|
|
|
|
|
sub_index.push_back(index);
|
|
|
|
|
}
|
|
|
|
|
return sub_index;
|
|
|
|
|
}
|