Записать блок данных пользовательских данных в файл.

int ires = ac_request_special("element_user_data", "read_from_file", string fullpath);

Возвращает в ires 0 в отсутствии ошибок.

Если возникла ошибка - возвращяется -1.

fullpath - путь к файлу, откуда считать блок данных.


Пример.

Упаковать рабочие таблицы в блок пользовательских данных и записать блок в файл и обратная операция - прочитать из файла и распаковать в таблицы.


int WriteTablesToFile()

{

       string str, tmppath, filename;

       shell_func("get_path", "tmp", tmppath);

       filename = "LabPP_SAINT-GOBAIN.ini";

       tmppath += "\\" + filename;

       coutvar << tmppath;


       ac_request_special("element_user_data", "clear");

       ts_table(iTableMaterials, "print_to_str_as_json", str);

       coutvar << str;

       ac_request_special("element_user_data", "set_variable_value", "iTableMaterials", str);

       ts_table(iTableSolutionsMats, "print_to_str_as_json", str);

       ac_request_special("element_user_data", "set_variable_value", "iTableSolutionsMats", str);


       ts_table(iTableSolutions, "print_to_str_as_json", str);

       ac_request_special("element_user_data", "set_variable_value", "iTableSolutions", str);

       ts_table(iTableSysProps, "print_to_str_as_json", str);

       ac_request_special("element_user_data", "set_variable_value", "iTableSysProps", str);


       int ires = ac_request_special("element_user_data", "write_to_file", tmppath);

       if (ires < 0)

       {

               tsalert(-2, "Предупреждение", "Не удалось записать данные в файл " + tmppath, "Этот файл предназначен для быстрой загрузки данных GYPROC. Возможно этот путь не доступен для записи. Настройте config.cpp", "Ok");

               return -1;

       }

}


int ReadTablesFromFile()

{

       string str, tmppath, filename;

       filename = "LabPP_SAINT-GOBAIN.ini";

       shell_func("get_path", "tmp", tmppath);

       tmppath += "\\"+filename;

       int ires = ac_request_special("element_user_data", "read_from_file", tmppath);

       if (ires < 0)

       {

               tsalert(-2, "Предупреждение", "Не удалось считать данные из файла " + tmppath, "Этот файл содержит информацию GYPROC из файла Excel для быстрой загрузки", "Ok");

               return -1;

       }


       ac_request_special("element_user_data", "get_variable_value", "iTableMaterials", str);

       cout << "-------------------------------------\n";

       coutvar << str;

       ts_table(iTableMaterials, "load_from_json_str", str);

       ac_request_special("element_user_data", "get_variable_value", "iTableSolutionsMats", str);

       ts_table(iTableSolutionsMats, "load_from_json_str", str);

       ac_request_special("element_user_data", "get_variable_value", "iTableSolutions", str);

       ts_table(iTableSolutions, "load_from_json_str", str);

       ac_request_special("element_user_data", "get_variable_value", "iTableSysProps", str);

       ts_table(iTableSysProps, "load_from_json_str", str);

}