Miscellaneous
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 Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---