
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Казалось, уже все сделано правильно, но нет!
Вот:
Это на домашнем компьютере в России.
Когда я удалил утилиту Get_news5 с графика, а затем снова присоединил, она переписала этот нулевой файл и снова заработала правильно.
Значит дело в ней?
Но она только и делает что открывает, пишет и закрывает, а когда не может открыть ситуация подвисает.
Любопытно, что эти же программы на VPS в это же время не дали никаких ошибок, файл пишется и читается.
у меня всего лишь одно подозрение
Вы производите запись на каждом тике и жесткий диск у Вас физический, это весьма критично и пагубно может повлиять на целостность и работу жесткого диска
и вполне может стать причиной рандомного по времени появления Вашей ошибки
попробуйте работать с файлом в оперативной памяти
например, я использовал запись в файл по миллисекундому таймеру, что превосходит ежетиковоее количество обращений к файлу и ни разу не словил ошибку
Как передать собранные и обработанные данные фреймов из эксперта? - Общее обсуждение - Форум алго-трейдеров MQL5 - Страница 4Здравствуйте, спасибо всем кто помогал решить проблему с записью и чтением файла разными программами!
Сегодня, наверное, можно подвести итог. Программы отработали почти сутки без появления ошибок.
Мой случай: одна программа пишет файл, многие программы его читают.
Рабочий вариант кода:
Для записи файла:
int handle=FileOpen(file_cpy,FILE_WRITE | FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_TXT);
Для чтения файла:
int FileHandle=FileOpen(file_cpy,FILE_READ | FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_BIN);
Некоторые обратили внимание, что у меня файл пишется как FILE_TXT , а читается как FILE_BIN.
Это работает и обусловлено моим алгоритмом интерпретации данных и никак не связано с рассматриваемой проблемой.
Возможно кому-то будет интересно, что так тоже можно.
у меня всего лишь одно подозрение
Вы производите запись на каждом тике и жесткий диск у Вас физический, это весьма критично и пагубно может повлиять на целостность и работу жесткого диска
и вполне может стать причиной рандомного по времени появления Вашей ошибки
попробуйте работать с файлом в оперативной памяти
например, я использовал запись в файл по миллисекундому таймеру, что превосходит ежетиковоее количество обращений к файлу и ни разу не словил ошибку
Как передать собранные и обработанные данные фреймов из эксперта? - Общее обсуждение - Форум алго-трейдеров MQL5 - Страница 4Вот возможность работы в памяти к которой я, возможно, обращусь позже:
DATABASE_OPEN_MEMORY
Создать базу данных в оперативной памяти
string filename="Memory";
//--- открываем/создаем базу данных в общей папке терминалов
int db=DatabaseOpen(":memory:", DATABASE_OPEN_MEMORY | DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE | DATABASE_OPEN_COMMON);
if(db==INVALID_HANDLE)
{
Print("DB: ", filename, " open failed with code ", GetLastError());
return;
}