Советники: Data Exchange v2.0 - страница 2

 
Уважаемый автор вы бы тут по подробней про массив написали ..... Он есть или его надо создать ??? Если создать то как ???
 
VOLDEMAR:
Уважаемый автор вы бы тут по подробней про массив написали ..... Он есть или его надо создать ??? Если создать то как ???

Доброго времени. Массив уже создан. Нужно просто подключить библиотеку и можно отсылать сообщения. В инструкции я написал как:

_icqmessage[0]=”Привет”;

SendIcq(1);

 

Уважаемый автор. Спасибо за DataExchange!!! SendIcq() и SendEMail() работают отлично !!!

А вот при отправке скриптов на e-mail приходят 2 файла. Причем при каждом новом обращении Советника к функции количество прикрепленных одинаковых gif-файлов возрастает на единицу. Первый файл содержит сам сигнал и снимки, а во втором файле только снимки.

В самом Советнике для создания скриншотов и для обращения к библиотеке записано следующее:

//--------- передача скриншота -------------------- 19+
if(!WindowScreenShot("screenshots\\Signal.gif",640,480))
lasterror=GetLastError();
SendScreenEMail(640,480);

Прошу помощи :)

 
pvm63:

Уважаемый автор. Спасибо за DataExchange!!! SendIcq() и SendEMail() работают отлично !!!

А вот при отправке скриптов на e-mail приходят 2 файла. Причем при каждом новом обращении Советника к функции количество прикрепленных одинаковых gif-файлов возрастает на единицу. Первый файл содержит сам сигнал и снимки, а во втором файле только снимки.

В самом Советнике для создания скриншотов и для обращения к библиотеке записано следующее:

//--------- передача скриншота -------------------- 19+
if(!WindowScreenShot("screenshots\\Signal.gif",640,480))
lasterror=GetLastError();
SendScreenEMail(640,480);

Прошу помощи :)


Доброго времени. Я не очень понял, зачем первые 2 строчки с выявлением ошибки. Попробуйте просто SendScreenEmail отправлять и все.
 
dj_ymep:

Доброго времени. Я не очень понял, зачем первые 2 строчки с выявлением ошибки. Попробуйте просто SendScreenEmail отправлять и все.

Результат тот же. Получаю 2 файла с накоплением снимков :(

//---------------- передача SMS_DataExchange ---------------- 16+
if(SMS_DataExchange == true)
{ // 5
_emailmessage[0]= Signal; // строка сообщения
SendEMail(1); // передача в библиотеку для работы с программой DataExchange
_emailmessage[0]= ""; // очистка строки сообщения
} // 5

//--------- передача скриншота Screen_Shot -------------------- 17+
if( Screen_Shot == true)
{ // 6
WindowScreenShot("screenshots\\Signal.gif",640,480);
SendScreenEMail(640,480);
FileDelete("screenshots\\Signal.gif"); //удаление файла
} // 6


С вашего согласия дальнейшую переписку можно перенести на почту для передачи прикреплённых файлов.

 

Подскажите, как побороть ошибку... какую бы папку не указывал — говорит не правильная папка MT4.

Что указывать там?

Есть папка программы: C:\Program Files (x86)\Alpari Limited MT4

Есть папка данных: C:\Users\SuperUser\AppData\Roaming\MetaQuotes\Terminal\1FC{ТУТ_КУЧА_БУКОВОК}9A855301E

 

Так, я разобрался...

Т.к. этот информер был сделан для предыдущей версии MT4, то... в качестве папки нужно указывать

C:\Users\{ПОЛЬЗОВАТЕЛЬ}\AppData\Roaming\MetaQuotes\Terminal\1FC{ТУТ_КУЧА_БУКОВОК}9A855301E\MQL4\Files

Далее, сам фаил DataExchange.mqh нужно будет немного изменить:

1. Заменить путь до файла на: Experts\Files\exchange\*
Т.е. к примеру, в функции SendIcq(int i) хендлер получится такой:
_handle=FileOpen ("Experts\Files\exchange\icqsend.msg",FILE_BIN|FILE_WRITE);

2. FileWriteArray функция у меня почему-то не работает... меняем ее на:

SendIcq:

for(int ii=0; ii<i; ii++)

{

if (ii > 0)

FileWriteString(_handle,"\n"+_icqmessage[ii]);

else

FileWriteString(_handle,_icqmessage[ii]);

}

SendEMail:

for(int ii=0; ii<i; ii++)

{

if (ii > 0)

FileWriteString(_handle,"\n"+_emailmessage[ii]);

else

FileWriteString(_handle,_emailmessage[ii]);

}

Если кто расскажет как вернуть FileWriteArray к жизни — буду признателен!

Причина обращения: