0
Views
0
Downloads
0
Favorites
s-PSIpLog_Clear
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| s-PSI@Log_Clear.mq4 |
//| Copyright © 2013, Igor Stepovoi aka TarasBY |
//| taras_bulba@tut.by |
//| 14.04.2013 Ñêðèïò äëÿ ÷èñòêè ëîãîâ îò "ìóñîðà" |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Äàííûé ïðîäóêò ïðåäíàçíà÷åí äëÿ íåêîìåð÷åñêîãî èñïîëüçîâàíèÿ. Ïóáëèêàöèÿ ðàçðå- |
//|øåíà òîëüêî ïðè óêàçàíèè èìåíè àâòîðà (TarasBY). Ðåäàêòèðîâàíèå èñõîäíîãî êîäà äî- |
//|ïóñòèìà òîëüêî ïðè óñëîâèè ñîõðàíåíèÿ äàííîãî òåêñòà, ññûëîê è èìåíè àâòîðà. |
//| Ïðîäàæà ñêðèïòà èëè(è) îòäåëüíûõ åãî ÷àñòåé ÇÀÏÐÅÙÅÍÀ. |
//| Àâòîð íå íåñ¸ò îòâåòñòâåííîñòè çà âîçìîæíûå óáûòêè, ïîëó÷åííûå â ðåçóëüòàòå èñ- |
//|ïîëüçîâàíèÿ ñêðèïòà. |
//| Ïî âñåì âîïðîñàì, ñâÿçàííûì ñ ðàáîòîé ñêðèïòà, çàìå÷àíèÿìè èëè ïðåäëîæåíèÿìè ïî |
//|åãî äîðàáîòêå îáðàùàòüñÿ íà Skype: TarasBY èëè e-mail. |
//+-----------------------------------------------------------------------------------+
//| This product is intended for non-commercial use. The publication is only allo- |
//|wed when you specify the name of the author (TarasBY). Edit the source code is va- |
//|lid only under condition of preservation of the text, links and author's name. |
//| Selling a script or(and) parts of it PROHIBITED. |
//| The author is not liable for any damages resulting from the use of a script. |
//| For all matters relating to the work of the script, comments or suggestions for |
//|their improvement in the contact Skype: TarasBY or e-mail. |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
#property copyright "Copyright © 2008-13, TarasBY WM R418875277808; Z670270286972"
#property link "taras_bulba@tut.by"
#property show_inputs
//IIIIIIIIIIIIIIIIIII==================CONSTANS=================IIIIIIIIIIIIIIIIIIIIII+
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| ***** Ïàðàìåòðû ñêðèïòà ***** |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
extern string FileName = ""; // Èìÿ ëîã-ôàéëà
extern bool IsTester = True; // Ëîã òåñòåðà
extern string ExcludeWords.List = ""; // Ïåð÷åíü (÷åðåç ",") ñëîâ èëè âûðàæåíèé, èñêëþ÷àåìûõ èç ëîãà
extern string WorkFolder = ""; // Ïàïêà â ñòðóêòóðå: êàòàëîã_òåðìèíàëà\experts\files (êàòàëîã_òåðìèíàëà\tester\files â ñëó÷àå òåñòèðîâàíèÿ ýêñïåðòà)
//IIIIIIIIIIIIIIIIIIII======Ãëîáàëüíûå ïåðåìåííûå ñêðèïòà=======IIIIIIIIIIIIIIIIIIIIII+
string gsa_NotRead[] = {"successfully","Cannot","uninit","removed","TestGenerator",
"initialized","deinitialized","Compiling"};
//IIIIIIIIIIIIIIIIIII=========Ïîäêëþ÷åíèå âíåøíèõ ìîäóëåé=======IIIIIIIIIIIIIIIIIIIIII+
#include <b-PSI@Arrays.mqh> // Áèáëèîòåêà ôóíêöèé ðàáîòû ñ ìàññèâàìè
#include <b-PSI@BaseZF.mqh> // Áèáëèîòåêà áàçîâûõ ôóíêöèé
#include <b-PSI@Log.mqh> // Áèáëèîòåêà ôóíêöèé ðàáîòû ñ ëîã-ôàéëàìè
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//| Custom script iteration function |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
int start()
{
int li_start = GetTickCount();
datetime ldt_Time = TimeCurrent();
string ls_Year = TimeYear (ldt_Time), ls_Month = TimeMonth (ldt_Time), ls_Day = TimeDay (ldt_Time);
//----
//---- Ïðè ïóñòîé ñòðîêå ôîðìèðóåì èìÿ íà îáðàáîòêè ôàéëà òåêóùåãî äíÿ
if (StringLen (ls_Month) == 1) ls_Month = StringConcatenate (0, ls_Month);
if (StringLen (ls_Day) == 1) ls_Day = StringConcatenate (0, ls_Day);
if (FileName == "") FileName = StringConcatenate (ls_Year, ls_Month, ls_Day);
//----
int lia_Time[][2], lia_Date[3];
string ls_FileName, ls_File = ".log", lsa_Row[0], ls_Name = FileName,
ls_WorkFolder = "", lsa_SET[], ls_Date;
bool lb_continue = false, lb_write = false;
//----
//---- Ýòî ÷èñòî ìîè ïàïêè (íå îáðàùàòü âíèìàíèÿ)
//---- À ìîæíî â ñòàíäàðòíîé ïàïêå files ïîìåñòèòü ññûëêè íà ïàïêè log, çàäàâ èì óïîìÿíóòûå íèæå èìåíà
if (WorkFolder == "/") {if (IsTester) ls_WorkFolder = "test"; else ls_WorkFolder = "on-line";}
else ls_WorkFolder = WorkFolder;
//---- Ãîòîâèì ìàññèâ ñ èäåíòèôèêàòîðàìè ïðîïóñêàåìûõ ñòðîê
fAdd_ListToArraySTR (gsa_NotRead, ExcludeWords.List, ",");
//---- Ïðîâåðÿåì íà âîçìîæíûå äóáëèêàòû
fCheck_DublicateSTR (gsa_NotRead);
//---- Îðãàíèçóåì ñ÷èòûâàíèå ñðàçó íåñêîëüêèõ ôàéëîâ, åñëè ëîã-ôàéëû ñòàíäàðòíûå
if (fCheck_ValidDate (ls_Name, lia_Date))
{
int li_Len = StringLen (ls_Name);
if (li_Len > 8) ls_Name = StringSubstr (ls_Name, 0, li_Len - 8);
else ls_Name = "";
//---- Ïîëó÷àåì äàòó ëîã-ôàéëà
datetime ldt_Date = fGet_TimeFromArray (lia_Date);
//---- Ïðîâåðÿåì ñîîòâåòñòâèå íàéäåííîé äàòû ñåãîäíåøíåìó äíþ
int li_Day = TimeDayOfYear (ldt_Date), li_curDay = TimeDayOfYear (ldt_Time);
if (li_Day < li_curDay)
{
string lsa_TMP[],
ls_row = "*******************************************";
for (int li_IND = 0; li_IND <= li_curDay - li_Day; li_IND++)
{
ldt_Time = ldt_Date + li_IND * PERIOD_D1 * 60;
ls_Date = fGet_NameFromTime (ldt_Time);
//Print ("Name from Date = ", ls_Date);
ls_FileName = StringConcatenate (ls_Name, ls_Date, ls_File);
//Print ("Name - ", ls_FileName);
if (fRead_FileToArray (lsa_TMP, gsa_NotRead, ls_FileName, ls_WorkFolder))
{
lb_write = true;
int li_size = ArraySize (lsa_Row);
ArrayResize (lsa_Row, li_size + 1);
//---- Äîáàâëÿåì ñòðîêó ðàçäåëèòåëü ì/ó äàòàìè
lsa_Row[li_size] = StringConcatenate (ls_row, "||--", TimeToStr (ldt_Time, TIME_DATE), "--||", ls_row);
fComplete_ArraysSTR (lsa_Row, lsa_TMP);
}
}
lb_continue = true;
}
}
//---- Åñëè ñ÷èòûâàòü íóæíî òîëüêî îäèí ôàéë èëè ôàéë íå èìååò â èìåíè ñòàíäàðíîé äàòû
if (!lb_continue)
{
ls_FileName = StringConcatenate (FileName, ls_File);
if (fRead_FileToArray (lsa_Row, gsa_NotRead, ls_FileName, ls_WorkFolder)) {lb_write = true;}
}
//---- Åñëè åñòü ðàçðåøåíèå, ôîðìèðóåì âûõîäíîé ôàéë
if (lb_write)
{
//---- Ñíà÷àëà ïðîâîäèì ïîäãîòîâêó ìàññèâà äëÿ ïîñëåäóþùåé ñîðòèðîâêè
fPrepare_Arrays (lsa_Row, lia_Time, lsa_SET, IsTester, True);
//---- Ôîðìèðóåì èìÿ âûõîäíîãî ôàéëà
if (StringSubstr (FileName, StringLen (FileName) - 2) == ls_Day) ls_Day = "";
else ls_Day = StringConcatenate ("-", ls_Day);
//---- Çàïèñûâàåì ôàéë
fWrite_FileFromArray (lsa_Row, StringConcatenate (FileName, ls_Day, "(C).log"), ls_WorkFolder);
}
//---- Ðàñ÷èòûâàåì âðåìÿ ðàáîòû ñêðèïòà
int li_Time = GetTickCount() - li_start; // Ïðîäîëæèòåëüíîñòü ðàáîòû êîäà â ìèëèñåêóíäàõ
string ls_msg = StringConcatenate ("Âðåìÿ ðàáîòû ñêðèïòà: ", fTimeToStr (li_Time));
Print (ls_msg);
//----
return (0);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
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
---