//+------------------------------------------------------------------+ //| Main.mqh | //| Copyright 2025, Niquel Mendoza. | //| https://www.mql5.com/es/users/nique_372 | //+------------------------------------------------------------------+ #property copyright "Copyright 2025, Niquel Mendoza." #property link "https://www.mql5.com/es/users/nique_372" #property strict #ifndef AIDATATASKRUNNER_FILEINSTALER_MAIN_MQH #define AIDATATASKRUNNER_FILEINSTALER_MAIN_MQH //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #include "..\\..\\MQLArticles\\Utils\\Basic.mqh" //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #resource "res\\language_en.txt" as const string g_panelict_dep_language_en #resource "res\\language_es.txt" as const string g_panelict_dep_language_es #resource "res\\language_it.txt" as const string g_panelict_dep_language_it //--- // Este archivo se encarga de dwscragar los .ini en Conifg struct AiDataTaskRunnerConfigFile { string base_folder; bool comon_flag; } g_aidatatask_runner_config_g; //--- #define AIDATATASKRUNER_BASE_FOLDER (g_aidatatask_runner_config_g.base_folder) #define AIDATATASKRUNER_PATH_CONFIG (AIDATATASKRUNER_BASE_FOLDER + "Config\\") #define AIDATATASKRUNER_PATH_TASK (AIDATATASKRUNER_BASE_FOLDER + "Task\\") //--- #define AIDATATASKRUNNER_TOTAL_LANGUAGUE (3) //--- #define AIDATATASK_RUNNER_COMON_FLAG (g_aidatatask_runner_config_g.comon_flag ? FILE_COMMON : 0) #define AIDATATASK_RUNNER_FSD_COMON_FLAG (g_aidatatask_runner_config_g.comon_flag ? FSD_COMMON_FOLDER : 0) //--- struct AiDataTaskRunnerLan { string base_file; string content; }; //--- string g_aidatatask_runner_langague_str[AIDATATASKRUNNER_TOTAL_LANGUAGUE] { "Español", "English", "Italiano" }; //--- AiDataTaskRunnerLan g_aidatatask_runner_langague[AIDATATASKRUNNER_TOTAL_LANGUAGUE] { {AIDATATASKRUNER_PATH_CONFIG + "language_es.ini", g_panelict_dep_language_es}, {AIDATATASKRUNER_PATH_CONFIG + "language_en.ini", g_panelict_dep_language_en}, {AIDATATASKRUNER_PATH_CONFIG + "language_it.ini", g_panelict_dep_language_it} }; //--- enum ENUM_AIDATATASKRUNER_LANGUAGE { AIDATATASKRUNNER_LAN_ES = 0, AIDATATASKRUNNER_LAN_EN = 1, AIDATATASKRUNNER_LAN_IT = 2 }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ class CPanelAiDataTaskRunnerIns { private: static bool WriteInFile(const string path, const string& rescr); public: CPanelAiDataTaskRunnerIns(void) {} ~CPanelAiDataTaskRunnerIns(void) {} //--- static bool Downlad(); }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ static bool CPanelAiDataTaskRunnerIns::WriteInFile(const string path, const string &rescr) { //--- string arr[]; const int t = StringSplit(rescr, '\n', arr); if(t == -1) { FastLog(FUNCION_ACTUAL, ERROR_TEXT, "Falo al hacer split al resrc"); return false; } //ArrayPrint(arr); //--- ::GetLastError(); const int fh = FileOpen(path, FILE_TXT | FILE_WRITE | AIDATATASK_RUNNER_COMON_FLAG); if(fh == INVALID_HANDLE) { FastLog(FUNCION_ACTUAL, ERROR_TEXT, StringFormat("Fallo al abrir el archivo = %s, ultimo error = %d", path, ::GetLastError())); return false; } //--- for(int i = 0; i < t; i++) { StringTrimRight(arr[i]); FileWrite(fh, arr[i]); } //--- FileClose(fh); //--- return true; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ static bool CPanelAiDataTaskRunnerIns::Downlad(void) { //--- const string file = AIDATATASKRUNER_PATH_CONFIG + "last_date.bin"; if(FileIsExist(file, AIDATATASK_RUNNER_COMON_FLAG)) { // Ya existe FastLog(FUNCION_ACTUAL, WARNING_TEXT, "The ini files have already been created"); return true; } else { FastLog(FUNCION_ACTUAL, WARNING_TEXT, "Creating init files for the panel"); } //--- Instalacion de archivos for(int i = 0; i < AIDATATASKRUNNER_TOTAL_LANGUAGUE; i++) { if(!WriteInFile(g_aidatatask_runner_langague[i].base_file, g_aidatatask_runner_langague[i].content)) return false; } //--- if(!CreateFolder(AIDATATASKRUNER_PATH_TASK, g_aidatatask_runner_config_g.comon_flag)) // Folder de utilidad por si el usuario crea tareas o guarda return false; //--- Finalizamos creando const int fh = FileOpen(file, FILE_BIN | FILE_WRITE | AIDATATASK_RUNNER_COMON_FLAG); if(fh == INVALID_HANDLE) { FastLog(FUNCION_ACTUAL, ERROR_TEXT, StringFormat("Fallo al abrir el archivo = %s, ultimo error = %d", file, ::GetLastError())); return false; } FileWriteLong(fh, long(TimeCurrent())); FileClose(fh); //--- return true; } //+------------------------------------------------------------------+ #endif // AIDATATASKRUNNER_FILEINSTALER_MAIN_MQH