![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
наблюдайте внимательнее, как выше написано так и есть
Как внимательнее-то? )
Как я написал выше, вы судя по всему открываете файл проводником, а не просто наблюдаете. Это разные вещи.
В этом случае да, отличия есть.
Свойства смотрю: правой кнопкой мышки - свойства. Факт в том, что есть разница с Flush() и без Flush().
Открытие файла и получение атрибутов файла - не одно и тоже и вообще, проводник не открывает файлы.
Прочтите мой коммент внимательно до каждого слова, пожалуйста.
Он абсолютно точный и именно так работают МТ много лет.
Если вы следите за файлом пассивно со стороны, не открыв его в share_read режиме(как это делает Far Manager во View режиме), то не заметите изменений долгое время. Хотя изменения фактически есть и контент там есть. Просто так операционка себя ведет - не пытается уведомлять всех и вся на каждой записи куска данных в файл. И правильно делает.
Про потерю данных после апишного FileWrite(вызывается как раз после FileFlush) и креша вам нужно будет очень и очень стараться, чтобы смоделировать.
наблюдайте внимательнее, как выше написано так и есть
Стало мне любопытно, решил проверить, что там реально пишется. Добавил еще флаг в строку с открытием файла, без него данные в процессе записи не посмотреть.. Смотрел содержимое через Total Commander (клавиша просмотра содержимого файла F3).
То есть периодически на нее нажимал, потом Esc.
Да, пишутся реально строки одна за другой.
Как внимательнее-то? )
Как я написал выше, вы судя по всему открываете файл проводником, а не просто наблюдаете. Это разные вещи.
В этом случае да, отличия есть.
Не нужно ничего открывать - просто в проводнике Windows 10 достаточно жать "F5" - сразу видно, что размер файла меняется (я в своём тесте добавил ещё десять записей FileWriteString - так заметнее изменение размера).
Стало мне любопытно, решил проверить, что там реально пишется. Добавил еще флаг в строку с открытием файла, без него данные в процессе записи не посмотреть.. Смотрел содержимое через Total Commander (клавиша просмотра содержимого файла F3).
То есть периодически на нее нажимал, потом Esc.
Да, пишутся реально строки одна за другой.
Тут еще посты появились про открытие файла по F5. Когда я смотрел содержимое Total Commander, то естественно, попробовал закомментировать FileFlush, файл открывался, но был пустой, пока скрипт не отработал до конца и не закрыл файл с записью.
С FileFlush данные реально скидывались построчно.
Билд 1375.
Стало мне любопытно, решил проверить, что там реально пишется. Добавил еще флаг в строку с открытием файла, без него данные в процессе записи не посмотреть.. Смотрел содержимое через Total Commander (клавиша просмотра содержимого файла F3).
То есть периодически на нее нажимал, потом Esc.
Да, пишутся реально строки одна за другой.
Зато если ничего не нажимать, то размер не меняется.
Но я обнаружил любопытную закономерность. Если после FileFlush добавить строчку FileGetInteger("MyFile.txt", FILE_SIZE), где MyFile - это естественно имя нашего файла, то размер файла в Total Commander динамически обновляется и без всякого F3
Вот скрипт. Во входных параметрах: если "false" - значит сброс данных в конце цикла, если "true" - значит сброс идёт поблочно.
Проверять количество операций записи в диспетчере задач (вкладка "Подробности"):
Разница сразу видна - если параметр "true" - то каждые две секунды идёт операция записи (сброс блока текста), если параметр равен "false" - то сброс идёт в конце скрипта.
так это тоже приводит к открытию файла, насколько я понимаю, или нет? что означает F5?