Check_PathFunctions_dll

Author: Copyright � Zhunko
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
Check_PathFunctions_dll
//+------------------------------------------------------------------+
//|                                      Check_PathFunctions.dll.mq4 |
//|                                      Copyright © Zhunko          |
//| 08.06.2011 - 09.02.2014              vadim@zhunko.ru             |
//+------------------------------------------------------------------+
//| Áèáëèîòåêà ðàáîòàåò òîëüêî íà âåðñèÿõ ÎÑ îò Windows Vista è âûøå.|
//+------------------------------------------------------------------+
#property copyright "Copyright © Zhunko"
#property link      "vadim@zhunko.ru"
#property show_inputs
#include <PathFunctions.mqh> // Çàãîëîâî÷íûé ôàéë áèáëèîòåêè "PathFunctions.dll" ôóíêöèé äëÿ ðàáîòû ñ êàòàëîãàìè.
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
input string PathTest       = "F:\\Check_PathFunctions\\Test0"; // Ïóòü äëÿ ïåðåìåùåíèé. Âûáåðèòå êàòàëîã ïîä ñâîþ êîíôèãóðàöèþ äèñêîâ.
input string PathSymbLink   = "F:\\Check_SymbolicLink\\Test0";  // Ïóòü äëÿ ñèìâîëè÷åñêîé ññûëêè. Âûáåðèòå êàòàëîã ïîä ñâîþ êîíôèãóðàöèþ äèñêîâ.
input bool   CheckAll       = false;                            // Âêëþ÷åíèå âñåõ òåñòîâ ïîäðÿä.
input bool   Check          = false;                            //  1. Êîíòðîëü íàëè÷èÿ êàòàëîãà ôóíêöèåé PathCheck().
input bool   ClearContents  = false;                            //  2. Êîíòðîëü î÷èùåíèÿ êàòàëîãà ôóíêöèåé PathClearContents().
input bool   ClearFromFiles = false;                            //  3. Êîíòðîëü î÷èùåíèÿ êàòàëîãà ôóíêöèåé PathClearFromFiles().
input bool   Copy           = false;                            //  4. Êîíòðîëü êîïèðîâàíèÿ êàòàëîãà ôóíêöèåé PathCopy().
input bool   Create         = false;                            //  5. Êîíòðîëü ñîçäàíèÿ êàòàëîãà ôóíêöèåé PathCreate().
input bool   Delete         = false;                            //  6. Êîíòðîëü óäàëåíèÿ êàòàëîãà ôóíêöèåé PathDelete().
input bool   GetList        = false;                            //  7. Êîíòðîëü êîíòðîëü ïîëó÷åíèÿ ñïèñêà êàòàëîãîâ è ôàéëîâ ôóíêöèåé PathGetList().
input bool   IsEmpty        = false;                            //  8. Êîíòðîëü íàëè÷èÿ ïóñòîãî êàòàëîãà ôóíêöèåé PathEmpty().
input bool   Move           = false;                            // 10. Êîíòðîëü ïåðåìåùåíèÿ êàòàëîãà ôóíêöèåé PathMove().
input bool   SymbolicLink   = false;                            // 11. Êîíòðîëü ñîçäàíèÿ ñèìâîëüíîé ññûëêè íà êàòàëîã ôóíêöèåé PathSymbolicLink().
input bool   TrimNameFile   = false;                            // 12. Êîíòðîëü îòñå÷åíèÿ èìåíè ôàéëà îò ïîëíîãî ïóòè ê ôàéëó ôóíêöèåé PathTrimNameFile().
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
void OnStart()
 {
  bool   bResult = false; // Ðåçóëüòàò âûïîëíåíèÿ ôóíêöèé.
  int    i = 0;
  int    nSize = 0;       // Ðàçìåð ìàññèâà.
  string sComment = "";
  string sFileName = "C:\\Check_PathFunctions\\Test\\Test1\\Test2\\Test3\\Test4\\Text.txt";
  string amsList[100]; // Ìàññèâ äëÿ ïðè¸ìà èì¸í ôàéëîâ è êàòàëîãîâ.
  //=======================================================================================================================================================================================================================================
  // 1. Ôóíêöèÿ êîíòðîëëèðóåò íàëè÷èå êàòàëîãà. Åñëè êàòàëîã ñóùåñòâóåò, ìåòîä âîçâðàùàåò TRUE, èíà÷å - FALSE.
  if (CheckAll || Check)
   {
    sComment = sComment + StringConcatenate("1.  PathCheckW(\"", PathTest, "\") = ", PathCheckW(PathTest), ";\n    PathCheckW(\"", TerminalPath(), "\") = ", PathCheckW(TerminalPath()), ";\n\n"); // Íàëè÷èå êàòàëîãà.
    Comment(sComment);
   }
  //=======================================================================================================================================================================================================================================
  // 2-4. Ôóíêöèÿ êîïèðóåò ñóùåñòâóþùèé êàòàëîã, âêëþ÷àÿ åãî äî÷åðíèå ýëåìåíòû. Åñëè êàòàëîã ñóùåñòâóåò, òî ôóíêöèÿ ïåðåçàïèñûâàåò èõ. Ñòàðûå äàííûå ïðè ýòîì óíè÷òîæàþòñÿ. Ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå â ñëó÷àå îøèáêè.
  if (CheckAll || Copy || ClearContents || ClearFromFiles)
   {
    sComment = sComment + StringConcatenate("4.  Êîïèðóåì êàòàëîã \"", TerminalPath(), "\\MQL4\\Scripts\" â \"", TerminalPath(), "\\Test\".\n");
    Comment(sComment);
    sComment = sComment + "     PathCopyW() = " + PathCopyW(TerminalPath() + "\\MQL4\\Scripts", TerminalPath() + "\\Test") + ";\n"; // Êîïèðîâàíèå.
    Comment(sComment);
    sComment = sComment + StringConcatenate("     PathCheckW(\"", TerminalPath(), "\\Test\") = ", PathCheckW(TerminalPath() + "\\Test"), ";\n"); // Íàëè÷èå êàòàëîãà.
    sComment = sComment + "      òå÷åíèè 30 ñåêóíä, ïîêà âûïîëíÿåòñÿ çàäåðæêà, ìîæíî çàãëÿíóòü â êàòàëîã ÌÒ4 è óáåäèòüñÿ â âûïîëíåíèè ôóíêöèè.\n\n"; // Íàëè÷èå êàòàëîãà.
    Comment(sComment);
    Sleep(30000);
    if (ClearContents)
     {
      sComment = sComment + StringConcatenate("2.  Î÷èùàåì êàòàëîã \"", TerminalPath(), "\\Test\" îò âñåãî ñîäåðæèìîãî.\n");
      Comment(sComment);
      sComment = sComment + "     PathClearContentsW() = " + PathClearContentsW(TerminalPath() + "\\Test") + ";\n"; // Êîïèðîâàíèå.
      Comment(sComment);
      sComment = sComment + "      òå÷åíèè 30 ñåêóíä, ïîêà âûïîëíÿåòñÿ çàäåðæêà, ìîæíî çàãëÿíóòü â êàòàëîã ÌÒ4 è óáåäèòüñÿ â âûïîëíåíèè ôóíêöèè.\n\n"; // Íàëè÷èå êàòàëîãà.
      Comment(sComment);
      Sleep(30000);
     }
    if (ClearFromFiles)
     {
      sComment = sComment + StringConcatenate("3.  Î÷èùàåì êàòàëîã \"", TerminalPath(), "\\Test\" îò ôàéëîâ.\n");
      Comment(sComment);
      sComment = sComment + "     PathClearFromFilesW() = " + PathClearFromFilesW(TerminalPath() + "\\Test") + ";\n"; // Êîïèðîâàíèå.
      Comment(sComment);
      sComment = sComment + "      òå÷åíèè 30 ñåêóíä, ïîêà âûïîëíÿåòñÿ çàäåðæêà, ìîæíî çàãëÿíóòü â êàòàëîã ÌÒ4 è óáåäèòüñÿ â âûïîëíåíèè ôóíêöèè.\n\n"; // Íàëè÷èå êàòàëîãà.
      Comment(sComment);
      Sleep(30000);
     }
    bResult = PathDeleteW(TerminalPath() + "\\Test");
    sComment = sComment + StringConcatenate("     PathDeleteW(", TerminalPath(), "\\Test\") = ", bResult, ";\n\n"); // Óäàëÿåì êàòàëîã.
    Comment(sComment);
   }
  //=======================================================================================================================================================================================================================================
  // 5. Ôóíêöèÿ ñîçäà¸ò êàòàëîã.
  if (CheckAll || Create || Delete)
   {
    sComment = sComment + StringConcatenate("5.  Ñîçäà¸ì êàòàëîã \"", TerminalPath(), "\\Test\\Test1\\Test2\\Test3\".\n");
    Comment(sComment);
    bResult = PathCreateW(TerminalPath() + "\\Test\\Test1\\Test2\\Test3"); // Ïóòü ê íîâîìó êàòàëîãó.
    sComment = sComment + "     PathCreateW() = " + bResult + ";\n"; // Ñîçäàíèå.
    Comment(sComment);
    sComment = sComment + StringConcatenate("     PathCheckW(\"", TerminalPath(), "\\Test\\Test1\\Test2\\Test3\") = ", PathCheckW(TerminalPath() + "\\Test\\Test1\\Test2\\Test3"), ";\n\n"); // Íàëè÷èå êàòàëîãà.
    Comment(sComment);
   }
  //=======================================================================================================================================================================================================================================
  // 6-7. Ôóíêöèÿ óäàëÿåò êàòàëîã. Åñëè êàòàëîã óäàë¸í, ôóíêöèÿ âîçâðàùàåò TRUE, èíà÷å - FALSE.
  if (CheckAll || Delete || Create)
   {
    sComment = sComment + StringConcatenate("6.  Óäàëÿåì êàòàëîã \"", TerminalPath(), "\\Test\\Test1\\Test2\\Test3\"\n");
    sComment = sComment + "      òå÷åíèè 30 ñåêóíä, ïîêà âûïîëíÿåòñÿ çàäåðæêà, ìîæíî çàãëÿíóòü â êàòàëîã ÌÒ4 è óáåäèòüñÿ â âûïîëíåíèè ôóíêöèè.\n";
    Comment(sComment);
    Sleep(30000);
    bResult = PathDeleteEmptyW(TerminalPath() + "\\Test\\Test1\\Test2\\Test3");
    sComment = sComment + StringConcatenate("    PathDeleteEmptyW(", TerminalPath(), "\\Test\\Test1\\Test2\\Test3\") = ", bResult, ";\n"); // Óäàëÿåì êàòàëîã.
    sComment = sComment + "      òå÷åíèè 30 ñåêóíä, ïîêà âûïîëíÿåòñÿ çàäåðæêà, ìîæíî çàãëÿíóòü â êàòàëîã ÌÒ4 è óáåäèòüñÿ â âûïîëíåíèè ôóíêöèè.\n";
    Comment(sComment);
    Sleep(30000);
    sComment = sComment + StringConcatenate("     PathCheckW(\"", TerminalPath(), "\\Test\\Test1\\Test2\\Test3\") = ", PathCheckW(TerminalPath() + "\\Test\\Test1\\Test2\\Test3"), ";\n\n"); // Íàëè÷èå êàòàëîãà.
    Comment(sComment);
    if (!bResult) // Åñëè êàòàëîã íå ïóñòîé, óäàëÿåì äðóãîé ôóíêöèåé "PathDelete()".
     {
      bResult = PathDeleteW(TerminalPath() + "\\Test\\Test1\\Test2\\Test3");
      sComment = sComment + StringConcatenate("     PathDeleteW(", TerminalPath(), "\\Test\\Test1\\Test2\\Test3\") = ", bResult, ";\n"); // Óäàëÿåì êàòàëîã.
      Comment(sComment);
      sComment = sComment + StringConcatenate("     PathCheckW(\"", TerminalPath(), "\\Test\\Test1\\Test2\\Test3\") = ", PathCheckW(TerminalPath() + "\\Test\\Test1\\Test2\\Test3"), ";\n"); // Íàëè÷èå êàòàëîãà.
      Comment(sComment);
     }
    sComment = sComment + StringConcatenate("7.   Óäàëÿåì êàòàëîã \"", TerminalPath(), "\\Test\"\n");
    Comment(sComment);
    bResult = PathDeleteW(TerminalPath() + "\\Test");
    sComment = sComment + StringConcatenate("     PathDeleteW(", TerminalPath(), "\\Test\") = ", bResult, ";\n"); // Óäàëÿåì êàòàëîã.
    Comment(sComment);
    sComment = sComment + StringConcatenate("     PathCheckW(\"", TerminalPath(), "\\Test\") = ", PathCheckW(TerminalPath() + "\\Test"), ";\n\n"); // Íàëè÷èå êàòàëîãà.
    Comment(sComment);
   }
  //=======================================================================================================================================================================================================================================
  // 8. Ôóíêöèÿ ïîëó÷àåò ñïèñîê êàòàëîãîâ è/èëè ôàéëîâ â âåêòîðíîì ìàññèâå ïî óêàçàííîìó ïóòè è ìàñêå ïîèñêà. Ôóíêöèÿ âîçâðàùàåò êîëè÷åñòâî íàéäåííûõ êàòàëîãîâ è/èëè ôàéëîâ.  ñëó÷àå îøèáêè ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå è âîçâðàùàåò -1.
  if (CheckAll || GetList)
   {// Ïîëó÷àåì ñïèñîê êàòàëîãîâ.
    sComment = sComment + "8.  Ñïèñîêè êàòàëîãîâ è ôàéëîâ âûâîäèòñÿ â îêíå àëåðòîâ.\n\n";
    Comment(sComment);
    for (i = 0; i < 100; i++) amsList[i] = i + "                                                                                                    "; // Èíèöèàëèçèðóåì ìàññèâ.
    nSize = PathGetListMW(TerminalPath() + "\\*.*", // Ïóòü ê êàòàëîãó, êîòîðûé ìîæåò ñîäåðæàòü ñèìâîëû ïîäñòàíîâêè (* è ?). Ýòà ñòðîêà ìîæåò óêàçûâàòü íà êîíêðåòíûé ôàéë òèïà "c:\filename.txt" èëè ìîæåò õðàíèòü øàáëîí "c:\*.*".
                                                    // Åñëè óêàçûâàòü øàáëîí, òî ýòî äà¸ò âîçìîæíîñòü ïåðå÷èñëèòü âñå ôàéëû óäîâëåòâîðÿþùèå øàáëîíó. Åñëè ñèìâîëüíàÿ ñòðîêà çàêàí÷èâàåòñÿ ñèìâîëîì ïîäñòàíîâêè,
                                                    // òî÷êîé èëè èìåíåì êàòàëîãà, ïîëüçîâàòåëü äîëæåí èìåòü äîñòóï ê êîðíåâîìó êàòàëîãó è âñåì âëîæåííûì â íåãî êàòàëîãàì íà ïóòè.
                          GL_FOLDER,                // Âûáîð ïîèñêà: GL_FOLDER - ïîèñê òîëüêî êàòàëîãîâ.
                                                    //               GL_FILE   - ïîèñê òîëüêî ôàéëîâ.
                                                    //               GL_ALL    - ïîèñê êàòàëîãîâ è ôàéëîâ.
                          amsList,                  // Îäíîìåðíûé ìàññèâ ñòðîê äëÿ çàïîëíåíèÿ èìåíàìè ôàéëîâ è êàòàëîãîâ. ß÷åéêè ìàññèâà äîëæíû èìåòü äîñòàòî÷íîå êîëè÷åñòâîì ñèìâîëîâ äëÿ ïðè¸ìà èì¸í ôàéëîâ è êàòàëîãîâ.
                          ArraySize(amsList));      // Ðàçìåð ìàññèâà ñïèñêà èì¸í ôàéëîâ è êàòàëîãîâ.
    Alert("8.1. ==== Ñïèñîê êàòàëîãîâ ====");
    for (i = 0; i < 100 && i < nSize; i++) Alert(i, "   \"", amsList[i], "\""); // Âûâîäèì ñïèñîê êàòàëîãîâ.
    // Ïîëó÷àåì ñïèñîê ôàéëîâ.
    for (i = 0; i < 100; i++) amsList[i] = i + "                                                                                                    "; // Èíèöèàëèçèðóåì ìàññèâ.
    nSize = PathGetListMW(TerminalPath() + "\\*.*", // Ïóòü ê êàòàëîãó, êîòîðûé ìîæåò ñîäåðæàòü ñèìâîëû ïîäñòàíîâêè (* è ?). Ýòà ñòðîêà ìîæåò óêàçûâàòü íà êîíêðåòíûé ôàéë òèïà "c:\filename.txt" èëè ìîæåò õðàíèòü øàáëîí "c:\*.*".
                                                    // Åñëè óêàçûâàòü øàáëîí, òî ýòî äà¸ò âîçìîæíîñòü ïåðå÷èñëèòü âñå ôàéëû óäîâëåòâîðÿþùèå øàáëîíó. Åñëè ñèìâîëüíàÿ ñòðîêà çàêàí÷èâàåòñÿ ñèìâîëîì ïîäñòàíîâêè,
                                                    // òî÷êîé èëè èìåíåì êàòàëîãà, ïîëüçîâàòåëü äîëæåí èìåòü äîñòóï ê êîðíåâîìó êàòàëîãó è âñåì âëîæåííûì â íåãî êàòàëîãàì íà ïóòè.
                          GL_FILE,                  // Âûáîð ïîèñêà: GL_FOLDER - ïîèñê òîëüêî êàòàëîãîâ.
                                                    //               GL_FILE   - ïîèñê òîëüêî ôàéëîâ.
                                                    //               GL_ALL    - ïîèñê êàòàëîãîâ è ôàéëîâ.
                          amsList,                  // Îäíîìåðíûé ìàññèâ ñòðîê äëÿ çàïîëíåíèÿ èìåíàìè ôàéëîâ è êàòàëîãîâ. ß÷åéêè ìàññèâà äîëæíû èìåòü äîñòàòî÷íîå êîëè÷åñòâîì ñèìâîëîâ äëÿ ïðè¸ìà èì¸í ôàéëîâ è êàòàëîãîâ.
                          ArraySize(amsList));      // Ðàçìåð ìàññèâà ñïèñêà èì¸í ôàéëîâ è êàòàëîãîâ.
    Alert("8.2. ==== Ñïèñîê ôàéëîâ ====");
    for (i = 0; i < 100 && i < nSize; i++) Alert(i, "   \"", amsList[i], "\""); // Âûâîäèì ñïèñîê ôàéëîâ.
    // Ïîëó÷àåì ñïèñîê êàòàëîãîâ è ôàéëîâ.
    for (i = 0; i < 100; i++) amsList[i] = i + "                                                                                                    "; // Èíèöèàëèçèðóåì ìàññèâ.
    nSize = PathGetListMW(TerminalPath() + "\\*.*", // Ïóòü ê êàòàëîãó, êîòîðûé ìîæåò ñîäåðæàòü ñèìâîëû ïîäñòàíîâêè (* è ?). Ýòà ñòðîêà ìîæåò óêàçûâàòü íà êîíêðåòíûé ôàéë òèïà "c:\filename.txt" èëè ìîæåò õðàíèòü øàáëîí "c:\*.*".
                                                    // Åñëè óêàçûâàòü øàáëîí, òî ýòî äà¸ò âîçìîæíîñòü ïåðå÷èñëèòü âñå ôàéëû óäîâëåòâîðÿþùèå øàáëîíó. Åñëè ñèìâîëüíàÿ ñòðîêà çàêàí÷èâàåòñÿ ñèìâîëîì ïîäñòàíîâêè,
                                                    // òî÷êîé èëè èìåíåì êàòàëîãà, ïîëüçîâàòåëü äîëæåí èìåòü äîñòóï ê êîðíåâîìó êàòàëîãó è âñåì âëîæåííûì â íåãî êàòàëîãàì íà ïóòè.
                          GL_ALL,                   // Âûáîð ïîèñêà: GL_FOLDER - ïîèñê òîëüêî êàòàëîãîâ.
                                                    //               GL_FILE   - ïîèñê òîëüêî ôàéëîâ.
                                                    //               GL_ALL    - ïîèñê êàòàëîãîâ è ôàéëîâ.
                          amsList,                  // Îäíîìåðíûé ìàññèâ ñòðîê äëÿ çàïîëíåíèÿ èìåíàìè ôàéëîâ è êàòàëîãîâ. ß÷åéêè ìàññèâà äîëæíû èìåòü äîñòàòî÷íîå êîëè÷åñòâîì ñèìâîëîâ äëÿ ïðè¸ìà èì¸í ôàéëîâ è êàòàëîãîâ.
                          ArraySize(amsList));      // Ðàçìåð ìàññèâà ñïèñêà èì¸í ôàéëîâ è êàòàëîãîâ.
    Alert("8.3. ==== Ñïèñîê êàòàëîãîâ è ôàéëîâ ====");
    for (i = 0; i < 100 && i < nSize; i++) Alert(i, "   \"", amsList[i], "\""); // Âûâîäèì ñïèñîê êàòàëîãîâ è ôàéëîâ.
    Sleep(30000);
   }
  //=======================================================================================================================================================================================================================================
  // 9. Ôóíêöèÿ ïðîâåðÿåò íàëè÷èå ïóñòîãî êàòàëîãà. Ôóíêöèÿ âîçâðàùàåò TRUE, åñëè êàòàëîã íå ïóñòîé èëè FALSE, åñëè êàòàëîã íå ïóñòîé èëè ïóòü íå ÿâëÿåòñÿ êàòàëîãîì.
  if (CheckAll || IsEmpty)
   {
    PathCreateW(TerminalPath() + "\\Test\\Test1"); // Ïóòü ê íîâîìó êàòàëîãó. Ñîçäà¸ì õîòÿ áû îäèí êàòàëîã äëÿ ïðîâåðêè.
    bResult = PathIsEmptyW(TerminalPath());
    sComment = sComment + StringConcatenate("9.  Ïðîâåðÿåì íàëè÷èå ïóñòîãî êàòàëîãà: PathIsEmptyW(\"", TerminalPath(), "\") = ", bResult, "\".\n");
    Comment(sComment);
    bResult = PathIsEmptyW(TerminalPath() + "\\Test\\Test1");
    sComment = sComment + StringConcatenate("     Ïðîâåðÿåì íàëè÷èå ïóñòîãî êàòàëîãà: PathIsEmptyW(\"", TerminalPath(), "\\Test\\Test1\") = ", bResult, "\".\n");
    Comment(sComment);
    bResult = PathIsEmptyW(TerminalPath() + "\\Test");
    sComment = sComment + StringConcatenate("     Ïðîâåðÿåì íàëè÷èå ïóñòîãî êàòàëîãà: PathIsEmptyW(\"", TerminalPath(), "\\Test\") = ", bResult, "\".\n");
    sComment = sComment + "      òå÷åíèè 30 ñåêóíä, ïîêà âûïîëíÿåòñÿ çàäåðæêà, ìîæíî çàãëÿíóòü â êàòàëîã ÌÒ4 è óáåäèòüñÿ â âûïîëíåíèè ôóíêöèè.\n";
    Comment(sComment);
    Sleep(30000);
    PathDeleteW(TerminalPath() + "\\Test"); // Óäàëÿåì íåíóæíûé êàòàëîã.
    sComment = sComment + StringConcatenate("     PathCheckW(\"", TerminalPath() + "\\Test\") = ", PathCheckW(TerminalPath() + "\\Test"), ";\n\n"); // Íàëè÷èå êàòàëîãà.
    Comment(sComment);
   }
  //=======================================================================================================================================================================================================================================
  //10. Ôóíêöèÿ ïåðåìåùàåò (ïåðåèìåíîâûâàåò) ñóùåñòâóþùèé êàòàëîã, âêëþ÷àÿ åãî äî÷åðíèå ýëåìåíòû. Ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå, åñëè êàòàëîã ïåðåìåùàåòñÿ íà äðóãîé òîì. Ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå â ñëó÷àå îøèáêè.
  if (CheckAll || Move)
   {
    PathCreateW(TerminalPath() + "\\Test\\Test1"); // Ïóòü ê íîâîìó êàòàëîãó. Ñîçäà¸ì õîòÿ áû îäèí êàòàëîã äëÿ ïðîâåðêè.
    sComment = sComment + StringConcatenate("10. Ïåðåìåùàåì ñ ïåðåèìåíîâàíèåì êàòàëîã \"", TerminalPath(), "\\Test\\Test1\" â \"", PathTest, "\".\n");
    Comment(sComment);
    sComment = sComment + "    PathMove() = " + PathMoveW(TerminalPath() + "\\Test\\Test1", PathTest) + "\n";
    sComment = sComment + StringConcatenate("    PathCheckW(\"", TerminalPath() + "\\Test\\Test1", "\") = ", PathCheckW(TerminalPath() + "\\Test\\Test1"), ";\n"); // Íàëè÷èå êàòàëîãà.
    sComment = sComment + StringConcatenate("    PathCheckW(\"", PathTest, "\") = ", PathCheckW(PathTest), ";\n"); // Íàëè÷èå êàòàëîãà.
    sComment = sComment + "     òå÷åíèè 30 ñåêóíä, ïîêà âûïîëíÿåòñÿ çàäåðæêà, ìîæíî çàãëÿíóòü â êàòàëîã ÌÒ4 è óáåäèòüñÿ â âûïîëíåíèè ôóíêöèè.\n\n"; // Íàëè÷èå êàòàëîãà.
    Comment(sComment);
    Sleep(30000);
    sComment = sComment + StringConcatenate("    Ïåðåìåùàåì îáðàòíî ñ ïåðåèìåíîâàíèåì êàòàëîã \"", PathTest, "\" â \"", TerminalPath(), "\\Test\\Test1\".\n");
    Comment(sComment);
    sComment = sComment + "    PathMoveW() = " + PathMoveW(PathTest, TerminalPath() + "\\Test\\Test1") + "\n";
    sComment = sComment + StringConcatenate("    PathCheckW(\"", PathTest, "\") = ", PathCheckW(PathTest), ";\n"); // Íàëè÷èå êàòàëîãà.
    sComment = sComment + StringConcatenate("    PathCheckW(\"", TerminalPath() + "\\Test\\Test1", "\") = ", PathCheckW(TerminalPath() + "\\Test\\Test1"), ";\n"); // Íàëè÷èå êàòàëîãà.
    sComment = sComment + "     òå÷åíèè 30 ñåêóíä, ïîêà âûïîëíÿåòñÿ çàäåðæêà, ìîæíî çàãëÿíóòü â êàòàëîã ÌÒ4 è óáåäèòüñÿ â âûïîëíåíèè ôóíêöèè.\n\n"; // Íàëè÷èå êàòàëîãà.
    Comment(sComment);
    Sleep(30000);
    string sPathTest = PathTrimNameFileW(PathTest);
    sComment = sComment + StringConcatenate("    Óäàëÿåì íåíóæíûé òåïåðü êàòàëîã \"", sPathTest, "\".\n"); // Çäåñü òîëüêî îáðåçàëè ïóòü.
    bResult = PathDeleteW(sPathTest); // Óäàëÿåì íåíóæíûé êàòàëîã.
    sComment = sComment + StringConcatenate("    PathDeleteW(\"", sPathTest, "\") = ", bResult, ";\n"); // Óäàëÿåì êàòàëîã.
    Comment(sComment);
    sComment = sComment + StringConcatenate("    PathCheckW(\"", sPathTest, "\") = ", PathCheckW(sPathTest), ";\n\n"); // Íàëè÷èå êàòàëîãà.
    
    sComment = sComment + StringConcatenate("    Óäàëÿåì íåíóæíûé òåïåðü êàòàëîã \"", TerminalPath(), "\\Test\".\n"); // Çäåñü òîëüêî îáðåçàëè ïóòü.
    bResult = PathDeleteW(TerminalPath() + "\\Test"); // Óäàëÿåì íåíóæíûé êàòàëîã.
    sComment = sComment + StringConcatenate("    PathDeleteW(\"", TerminalPath(), "\\Test\") = ", bResult, ";\n"); // Óäàëÿåì êàòàëîã.
    Comment(sComment);
    sComment = sComment + StringConcatenate("    PathCheckW(\"", TerminalPath() + "\\Test\") = ", PathCheckW(TerminalPath() + "\\Test"), ";\n\n"); // Íàëè÷èå êàòàëîãà.
    Comment(sComment);
   }
  //=======================================================================================================================================================================================================================================
  //11. Ôóíêöèÿ ñîçäà¸ò ñèìâîëüíóþ ññûëêó äëÿ óêàçàííîãî êàòàëîãà. Åñëè ñèìâîëüíàÿ ññûëêà ñîçäàíà, ìåòîä âîçâðàùàåò TRUE, èíà÷å - FALSE. Ôóíêöèÿ âûðàáàòûâàåò èñêëþ÷åíèå â ñëó÷àå îøèáêè.
  if (CheckAll || SymbolicLink)
   {
    sComment = sComment + StringConcatenate("11. Ñîçäà¸ì ñèìâîëüíóþ ññûëêó íà êàòàëîã \"", TerminalPath(), "\\MQL4\\Logs\" â \"", PathSymbLink, "\".\n");
    Comment(sComment);
    sComment = sComment + StringConcatenate("    PathSymbolicLinkW() = ", PathSymbolicLinkW(TerminalPath() + "\\MQL4\\Logs", PathSymbLink), ";\n"); // Èìÿ íîâîãî êàòàëîãà èëè ôàéëà.
    Comment(sComment);
    sComment = sComment + StringConcatenate("    PathCheckW(\"", PathSymbLink, "\") = ", PathCheckW(PathSymbLink), ";\n"); // Íàëè÷èå êàòàëîãà.
    sComment = sComment + "     òå÷åíèè 30 ñåêóíä, ïîêà âûïîëíÿåòñÿ çàäåðæêà, ìîæíî çàãëÿíóòü â êàòàëîã ÌÒ4 è óáåäèòüñÿ â âûïîëíåíèè ôóíêöèè.\n"; // Íàëè÷èå êàòàëîãà.
    Comment(sComment);
    Sleep(30000);
    bResult = PathDeleteW(PathTrimNameFileW(PathSymbLink));
    sComment = sComment + StringConcatenate("    PathDeleteW(\"", PathSymbLink, "\") = ", bResult, ";\n"); // Óäàëÿåì êàòàëîã.
    Comment(sComment);
    sComment = sComment + StringConcatenate("    PathCheckW(\"", PathSymbLink, "\") = ", PathCheckW(PathSymbLink), ";\n\n"); // Íàëè÷èå êàòàëîãà.
    Comment(sComment);
   }
  //=======================================================================================================================================================================================================================================
  //12. Ôóíêöèÿ îòñåêàåò èìÿ ôàéëà îò ïîëíîãî ïóòè ê ôàéëó è âîçâðàùàåò óêàçàòåëü íà ïóòü ê êàòàëîãó ýòîãî ôàéëà, ñîäåðæàùèé âõîäíîé ïàðàìåòð. Îòëè÷èòü èìÿ ôàéëà îò èìåíè êàòàëîãà íåâîçìîæíî.
  //    Ïî ýòîìó íàäî áûòü óâåðåííûì, ÷òî äëÿ îáðàáîòêè ïîäà¸òñÿ ïóòü ñ èìåíåì ôàéëà â êîíöå. Êàæäûé âûçîâ ôóíêöèè áóäåò îòñåêàòü îò ïîëíîãî ïóòè ñíà÷àëà èìÿ ôàéëà, åñëè îí åñòü, ïîòîì èìÿ ñëåäóþùåãî êàòàëîãà, åñëè îí åñòü.
  if (CheckAll || TrimNameFile)
   {
    sComment = sComment + StringConcatenate("12. Îòñåêàåì èìåíà ôàéëà è êàòàëîãîâ â ïîëíîì ïóòè ê ôàéëó \"", sFileName, "\".\n    Ñïèñîê êàòàëîãîâ ñ ïðàâûì îòñå÷åíèåì âûâîäèòñÿ â îêíå àëåðòîâ.");
    Comment(sComment);
    Alert("10. Îòñåêàåì èìåíà ôàéëà è êàòàëîãîâ â ïîëíîì ïóòè ê ôàéëó \"", sFileName, "\"");
    for (i = 0; i < 7; i++) Alert(i, "   \"", PathTrimNameFileW(sFileName), "\"");
   }
  //=======================================================================================================================================================================================================================================
 }
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---