Автор |
Сообщение |
shaman1244
Зарегистрирован: 08.12.2015
Сообщения: 19
|
Да, так работает!! Только если добавляется новая запись.
А если существующая запись дополняется и снизу дописывается новая строка (закрытие позиции и сразу переворот), вроде :
Было так
Код: |
18.05.2016 19:05:06 | Long || 2 ||| 92220 |||| 18.05.2016 19:05:19 ||||| 92130 |||||| -90 ||||||| -241.36
18.05.2016 19:05:19 | Short || -2 ||| 92100 ||||
|
Стало так
Код: |
18.05.2016 19:05:06 | Long || 2 ||| 92220 |||| 18.05.2016 19:05:19 ||||| 92130 |||||| -90 ||||||| -241.36
18.05.2016 19:05:19 | Short || -2 ||| 92100 |||| 18.05.2016 19:16:08 ||||| 92150 |||||| -50 ||||||| -136.66
18.05.2016 19:16:08 | Long || 2 ||| 92160 ||||
|
То начинаются глюки - отправка имейла каждую секунду, т.к. видимо постоянно срабатывает условие. И ини файл начинает выглядеть так:
Код: |
[RIM6]
prev_TT=18.05.2016 19:05:19 | Short || -2
last_TT=18.05.2016 19:16:08 | Long || 2
|
Видимо это какой-то геморойный вариант.
Как можно при изменении файла отправлять на мыло 2 его последние строки? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А может Ами обновить? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А... Вон оно че. Понял. Тот AFL код читает только последнюю строку. Поэтому когда обновляется последняя и сразу добавляется еще одна получается вот такой ini.
Пробуй так
Код: |
email=0;
if(Name() == "RIM6")
{
f_LT_1 = fopen(logs+"LOG_TRADES_1.TXT", "r");
if(f_LT_1 )
{
while(!feof(f_LT_1 ))
{
TT_0 = Nz(LT_1);
LT_1 = fgets(f_LT_1);
}
fclose(f_LT_1 );
}
LT_LAST_1=AS_READ_PARAM_STR("LT_1", Name() , "last_TT ");
if(LT_LAST_1 != LT_1)
{
LT_LAST_1 = StrTrim(LT_LAST_1, "", 3);
email=1;
AS_WRITE_STRING("LT_1", Name(), "prev_TT ", TT_0);
AS_WRITE_STRING("LT_1", Name(), "last_TT ", LT_1);
AlertIf(email==1, "EMAIL", TT_0 + "\n" + TT_1, 0);
email=0;
}
}
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
shaman1244
Зарегистрирован: 08.12.2015
Сообщения: 19
|
А как LT_1 инициализировать?
При объявлении LT_1 на на тип ругается, пробовал и текст и ноль |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А так?
Код: |
email=0;
TT_0 = LT_1 = "";
if(Name() == "RIM6")
{
f_LT_1 = fopen(logs+"LOG_TRADES_1.TXT", "r");
if(f_LT_1 )
{
while(!feof(f_LT_1 ))
{
TT_0 = LT_1;
LT_1 = fgets(f_LT_1);
}
fclose(f_LT_1 );
}
LT_LAST_1=AS_READ_PARAM_STR("LT_1", Name() , "last_TT ");
if(LT_LAST_1 != LT_1)
{
LT_LAST_1 = StrTrim(LT_LAST_1, "", 3);
email=1;
AS_WRITE_STRING("LT_1", Name(), "prev_TT ", TT_0);
AS_WRITE_STRING("LT_1", Name(), "last_TT ", LT_1);
AlertIf(email==1, "EMAIL", TT_0 + "\n" + TT_1, 0);
email=0;
}
}
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
shaman1244
Зарегистрирован: 08.12.2015
Сообщения: 19
|
Так ини Файл принял правильный вид. Но постоянно срабатывает условие отправки имейла, если последняя строка дополняется и новая добавляется одновременно |
|
|
Посмотреть профиль Отправить личное сообщение |
|
shaman1244
Зарегистрирован: 08.12.2015
Сообщения: 19
|
Думаю проще будет читать, запоминать три последних строки и слать их на имейл при редактирования файла, отслеживать редактирование по времени, Ами вроде может эту инфу снимать. Сейчас подумаю как написать это |
|
|
Посмотреть профиль Отправить личное сообщение |
|
shaman1244
Зарегистрирован: 08.12.2015
Сообщения: 19
|
Так работает
Код: |
email=0;
LT_2 = LT_3 = LT_1 = "";
if(Name() == "RIM6")
{
f_LT_1 = fopen(logs+"LOG_TRADES_1.TXT", "r");
if(f_LT_1 )
{
while(!feof(f_LT_1 ))
{
LT_3 = LT_2;
LT_2 = LT_1;
LT_1 = fgets(f_LT_1 );
}
fclose(f_LT_1 );
}
r_date=NumToStr(fgetstatus( logs+"LOG_TRADES_1.TXT", 1, 3 ));
r_time=NumToStr(fgetstatus( logs+"LOG_TRADES_1.TXT", 1, 4 ));
Rewrite_DateTime = r_date + r_time;
Rewrite_DateTime_Prev = AS_READ_PARAM_STR("Last_Write_1", Name() , "Rewrite_DateTime_Prev");
if(Rewrite_DateTime_Prev != Rewrite_DateTime)
{
email=1;
AlertIf(email==1, "EMAIL", LT_3 + "\n" + LT_2 + "\n" + LT_1 ,0,flags = 8);
email=0;
AS_WRITE_STRING("Last_Write_1", Name() , "Rewrite_DateTime_Prev", Rewrite_DateTime);
}
}
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
|