Вот это получает файл:
string cookie = NULL, headers; char post[], result[]; int fhandle, request; string url = "http://www.forexfactory.com/calendar.php"; int timeout = 5000; request = WebRequest("GET", url, cookie, NULL, timeout, post, 0, result, headers); fhandle = FileOpen("calendar_ff.htm", FILE_WRITE|FILE_BIN); FileWriteArray(fhandle, result, 0, ArraySize(result)); FileClose(fhandle);
А это читает и, если файл уже существует (то есть был записан в предыдущем запуске), то не работает с ошибкой 5004:
ResetLastError(); int fhandle = FileOpen("calendar_ff.htm", FILE_READ); Print(GetLastError());
Вот это получает файл:
А это читает и, если файл уже существует (то есть был записан в предыдущем запуске), то не работает с ошибкой 5004:
Попробуйте добавить в FileOpen флаг FILE_SHARE_READ. Чаще всего помогает.
Говорю вам, все предельно правильно, но не работает если файл htm уже записан. Я думаю, может это коцаный файл?? Но тогда почему он читает его сразу после записи, и не читает если файл был записан в предыдущем запуске эксперта??
Какой тип и билд терминала? Пожалуйста перезапустите терминал и покажите первые три строчки из вкладки "Журнал" терминала.
Говорю вам, все предельно правильно, но не работает если файл htm уже записан. Я думаю, может это коцаный файл?? Но тогда почему он читает его сразу после записи, и не читает если файл был записан в предыдущем запуске эксперта??
Вы пишите файл BIN а читать пытаетесь CSV
Попробуйте так:
ResetLastError(); int fhandle = FileOpen("calendar_ff.htm", FILE_READ|FILE_BIN); Print(GetLastError());
При открытии флаги неправильно указаны, не все.
FileOpen("calendar_ff.htm",FILE_READ|FILE_ANSI|FILE_TXT);
Вместо FILE_ANSI может FILE_UNICODE
Флаги я перепробовал все. Потом заплакал.
Я подумал, если у кого есть опыт открытия в мт4 htm-файлов из Интернета, поделитесь кодом. Мой код обсуждать и искать в нем ошибки вовсе не обязательно!.. Но есть никто этого не делал (??), тогда давайте обсуждать.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Я видел публикации по записи и чтению htm-файлов. Все скопировал, как в лучших примерах. И все работает. Но работает только при первом исполнении. Если файл из Интернета (не отчеты, которые может формировать мт4, видимо в этом и отличие) сохранен в виде htm и доступ к нему осуществляется после повторного запуска эксперта, то этот файл не открывается с ошибкой 5004. Хотя ровно та же функция открытия замечательно открывает этот же файл сразу после его сохранения, то есть как бы в одной цепочке событий и без перезапуска эксперта.
Я подумал, возможно есть какая хитрость для чтения htm-файлов из Интернета, о которой я не знаю? Речь идет именно о таких файлах из Интернета, а не об отчетах мт4.