comment2





//+------------------------------------------------------------------+
//|                                                     Comment2.mq4 |
//|                                                          Strator |
//|                                                  k-v-p@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Strator"
#property link      "k-v-p@yandex.ru"
#property library
//+------------------------------------------------------------------+
//| Ðàñøèðÿåò âîçìîæíîñòè ñòàíäàðòíîé ôóíêöèè Comment äëÿ âûâîäà     |
//| êîììåíòàðèåâ íà ãðàôèê.                                          |
//| Ïîìåùàåò êîììåíòàðèé str_text â çàäàííóþ ñòðîêó str_no íà ýêðàíå.| 
//+------------------------------------------------------------------+
int Comment2(string str_text, int str_no)
  {
// ìàññèâ ñòðîê
   string str[];
// ïîëíîå èìÿ ôàéëà
   string file_name = Symbol() + Period() + "_" + "comment.dat";
// ñ÷èòàåì ñòðîêè èç ôàéëà â ìàññèâ ñòðîê
   int str_cnt = FileReadToStringArray(file_name, str);
// åñëè ñòðîê â ìàññèâå íåäîñòàòî÷íî, óâåëè÷èì ðàçìåðíîñòü ìàññèâà
   if(str_cnt < str_no) 
       ArrayResize(str, str_no);
// óäàëèì èç íîâîé ñòðîêè ñèìâîëû ïåðåâîäà ñòðîêè, åñëè åñòü
   StringDeleteAllSubstr(str_text, "\n");
// ïîìåñòèì â ìàññèâ íîâóþ ñòðîêó
   str[str_no-1] = str_text;
// ñîõðàíèì ñòðîêîâûé ìàññèâ â ôàéë
   str_cnt = FileWriteFromStringArray(file_name, str);
// îòîáðàçèì ñòðîêè íà ýêðàíå
   string str_tmp = "";
   for(int i = 0; i < str_cnt; i++) 
       str_tmp = str_tmp + str[i] + "\n";
   Comment(str_tmp);
   return(0);
  }
//+------------------------------------------------------------------+
//| ÷òåíèå ôàéëà â ìàññèâ òèïà string                                |
//+------------------------------------------------------------------+
int FileReadToStringArray(string file_name, string& str[])
  {
   int file_str_cnt = 0;
   int file_id = FileOpen(file_name, FILE_CSV|FILE_READ|FILE_WRITE);
   if(file_id > 0)
     {
       //î÷èñòèì ìàññèâ ñòðîê, åñëè îí íå ïóñòîé
       if(ArraySize(str)!= 0) 
           ArrayResize(str, 0);
       //çàïîëíèì ìàññèâ çíà÷åíèÿìè èç ôàéëà
       while(!FileIsEnding(file_id))
         {
           file_str_cnt++;
           int arr_size = ArrayResize(str, file_str_cnt);
           if(arr_size == 0) 
               break;
           str[file_str_cnt-1] = FileReadString(file_id);
         }
       FileClose(file_id);  
     }
   else 
       return(-1);
   return(file_str_cnt);
  }
//+------------------------------------------------------------------+
//| çàïèñü ìàññèâà òèïà string â ôàéë                                |
//+------------------------------------------------------------------+
int FileWriteFromStringArray(string file_name, string& str[])
  {
   //êîëè÷åñòâî ñòðîê â ôàéëå
   int file_str_cnt = 0;
   //äåñêðèïòîð ôàéë
   int file_id = FileOpen(file_name, FILE_BIN|FILE_WRITE);
   //åñëè ôàéë îòêðûò óñïåøíî, ïðîèçâåñòè çàïèñü
   if(file_id > 0)
     {
       for(int i = 0; i < ArraySize(str); i++)
         {
           string str_tmp = str[i] + "\n";
           int str_len = StringLen(str_tmp);
           str_len = FileWriteString(file_id, str_tmp, str_len);
           if(str_len >= 0) 
               file_str_cnt++;
         }
       FileClose(file_id);  
     }
   else 
       return(-1);
   return(file_str_cnt);
  }
//+------------------------------------------------------------------+
//| Óäàëåíèå èç ñòðîêè str âñåõ âõîæäåíèé ïîäñòðîêè substr           |
//+------------------------------------------------------------------+
string StringDeleteAllSubstr(string str, string substr)
   {
    string str_tmp = "";
    string str_tmp1 = "";
    string str_tmp2 = "";
    int pos_substr = StringFind(str, substr);
    if(pos_substr >= 0)
      {
        if(pos_substr != 0) 
            str_tmp1 = StringSubstr(str, 0, pos_substr);
        str_tmp2 = StringSubstr(str, pos_substr + StringLen(substr));
        str_tmp = StringDeleteAllSubstr(str_tmp1 + str_tmp2, substr);
      }
    else 
        str_tmp = str;
    return(str_tmp);
   }
//+------------------------------------------------------------------+





Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features:

Uses files from the file system

It reads information from a file
It writes information to file