//+------------------------------------------------------------------+ //| P R O J E C T I N F O R M A T I O N | //|------------------------------------------------------------------| //| Expert title: ExVH_Demo free demo version for MQL4 Comunity | //| Customer: www.mql4.com | //| Programmer: Alexey Koshevoy (alexey.koshevoy@gmail.com) | //+------------------------------------------------------------------+ int ExVH_VarCnt; string ExVH_FileName; string ExVH_Project; string ExVH_Title[]; string ExVH_Type[]; string ExVH_Status[]; string ExVH_Value[]; int init() { return(0); } int deinit() { return(0); } int start() { if (!ExVH_Open("ExVH.evh")) return(0); // Checking for action status if (ExVH_GetStatus(5)==1) { Alert("Actioned!"); string VarValue; if (ExVH_GetValue(1)=="1") VarValue="true"; else VarValue="false"; // Boolean variable value Alert("Boolean test variable="+VarValue); // String variable value Alert("String test variable="+ExVH_GetValue(2)); ExVH_SetStatus(5,0); } // Integer variable value if (ExVH_GetStatus(3)==1) { Alert("Integer test variable has been changed. New value="+ExVH_GetValue(3)); ExVH_SetStatus(3,0); } // Double variable value if (ExVH_GetStatus(4)==1) { Alert("Double test variable has been changed. New value="+ExVH_GetValue(4)); ExVH_SetStatus(4,0); } ExVH_Close(); return(0); } //-------------------------------------------------------------------------// // ExVH high level functions //-------------------------------------------------------------------------// bool ExVH_Open(string FileName) { bool Result=true; ExVH_FileName=FileName; if (!ExVH_i_Load()) Result=false; if (Result) if (!ExVH_i_GetVarCnt()) Result=false; if (Result) ExVH_i_Disassemble(); return(Result); } int ExVH_Close() { ExVH_i_Assemble(); ExVH_i_Save(); } int ExVH_GetStatus(int Id) { if ((Id<1)||(Id>ExVH_VarCnt)) return(-1); else return(StrToInteger(ExVH_Status[Id-1])); } int ExVH_SetStatus(int Id, int Status) { int Result; if ((Id<1)||(Id>ExVH_VarCnt)) Result=-1; else { Result=1; ExVH_Status[Id-1]=Status; } return(Result); } string ExVH_GetValue(int Id) { if ((Id<1)||(Id>ExVH_VarCnt)) return("N/A"); else return(ExVH_Value[Id-1]); } //-------------------------------------------------------------------------// // ExVH low level functions //-------------------------------------------------------------------------// bool ExVH_i_Load() { bool Result=true; ExVH_Project=""; int i=0; int FS=0; int handle; int Buf[]; handle=FileOpen(ExVH_FileName,FILE_BIN|FILE_READ); if(handle>0) { FS=FileSize(handle); ArrayResize(Buf,FS); while(!FileIsEnding(handle)) { Buf[i] = FileReadInteger(handle, CHAR_VALUE); i++; } FileClose(handle); string Str=""; for (i=0;i0) { FileWriteString(handle,ExVH_Project,StringLen(ExVH_Project)); FileClose(handle); } else Result=false; return(Result); } bool ExVH_i_GetVarCnt() { bool Result=true; string Value=ExVH_i_GetVarValue("Var_Cnt"); if (Value=="N/A") Result=false; else ExVH_VarCnt=StrToInteger(Value); return(Result); } void ExVH_i_Disassemble() { int i; ArrayResize(ExVH_Title, ExVH_VarCnt); ArrayResize(ExVH_Type, ExVH_VarCnt); ArrayResize(ExVH_Status, ExVH_VarCnt); ArrayResize(ExVH_Value, ExVH_VarCnt); for (i=0;i