Miscellaneous
0
Views
0
Downloads
0
Favorites
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);
}
//+------------------------------------------------------------------+
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
---