Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Там у Сергея работает несколько советников, строк несколько, поэтому массив. И поэтому всё выглядит некрасиво. Максим Кузнецов предлагал SQL, вот это правильно для общения этих советников между собой.
Но строки читаются по одной и как-то выбирается нужная стока. А потом уже массив не нужен будет.
Я тоже об этом говорил, но mql4 не поддерживает SQLite
А я вроде подключал библиотеку? Или не сюда, забыл уже.
А я вроде подключал библиотеку? Или не сюда, забыл уже.
Похоже что совместное одновременное редактирование файла не возможно по причине того, что сохраняется та версия файла, которая позже сохранилась.
Например программа А открыла файл для редактирования, в это же самое время то же самое сделала программа В, далее программа А внесла изменения и сохранила их с помощью FileClose, следом то же самое сделала программа В, но при открытии файла программой С в файле не будет изменений произведённых программой А, а только те изменения, которые были осуществлены и записаны программой В, так как программа В произвела более позднее сохранение, нежели программа А.
Но это не точно.
Существует вообще какая-нибудь информация на этот счёт?
Одновременная работа программ с одним файлом это зло злейшее. В момент работы с файлом советник должен контролировать запрет чтения/записи этого файла другими советниками. Используйте SQL или флаг-глобальную переменную или флаг-файл. Иначе будут непонятные ошибки, которые трудно обнаружить.
Не такое уж это и зло, задачи разные бывают, просто необходимо учитывать определённые особенности.
По всей видимости сохранение изменений происходит именно в момент FileClose, а до тех пор о них никто не подозревает.
Похоже что совместное одновременное редактирование файла не возможно по причине того, что сохраняется та версия файла, которая позже сохранилась.
Например программа А открыла файл для редактирования, в это же самое время то же самое сделала программа В, далее программа А внесла изменения и сохранила их с помощью FileClose, следом то же самое сделала программа В, но при открытии файла программой С в файле не будет изменений произведённых программой А, а только те изменения, которые были осуществлены и записаны программой В, так как программа В произвела более позднее сохранение, нежели программа А.
Но это не точно.
Существует вообще какая-нибудь информация на этот счёт?
Сложно это настроить, но не невозможно. Достаточно проверять, перед записью время последнего изменения с аналогичным временем при открытии. То-есть читаем FILE_MODIFY_DATE затем открываем файл, делаем изменения, опять читаем FILE_MODIFY_DATE сравниваем с предыдущим и если изменений никто не делал закрываем файл сохраняя свои изменения. Иначе отменяем изменения… и повторяем открытие. Примерно так.
Не такое уж это и зло, задачи разные бывают, просто но необходимо учитывать определённые особенности.
По всей видимости сохранение изменений происходит именно в момент FileClose, а до тех пор о них никто не подозревает.
Не факт.
FileFlushСброс на диск всех данных, оставшихся в файловом буфере ввода-вывода.
Сложно это настроить, но не невозможно. Достаточно проверять, перед записью время последнего изменения с аналогичным временем при открытии. То-есть читаем FILE_MODIFY_DATE затем открываем файл, делаем изменения, опять читаем FILE_MODIFY_DATE сравниваем с предыдущим и если изменений никто не делал закрываем файл сохраняя свои изменения. Иначе отменяем изменения… и повторяем открытие. Примерно так.
Это примерно то же самое, что и флаг "занято" (кто первый встал - того и тапки), только в разы сложнее, но мысль интересная, мне понравилась, спасибо.
Не факт.
FileFlushСброс на диск всех данных, оставшихся в файловом буфере ввода-вывода.
Не особо понял что это означает в контексте сохранения при FileClose.