s-PSIpLog_Clear

Author: Copyright � 2008-13, TarasBY WM R418875277808
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 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 ---