Не работает FILE_SHARE_READ - страница 2

 
Если сообщения короткие, то можно обмениваться при помощи события. Без файлов, и постоянного мониторинга изменений.
 
igrok333:
Запускаю советник:

Потом запускаю скрипт:

Скрипт отдает -1.

ПС: советник у меня должен делать записи в файл, а скрипт читать его.

Надо чётко понимать как работают флаги FILE_SHARE_READ и FILE_SHARE_WRITE

FILE_SHARE_READ говорит о том, что работающая программа «разрешает» другим приложениям читать файл. А FILE_SHARE_WRITE разрешает в этот файл  писать любому приложению.

Следовательно если советник пишет и разрешает читать, то при открытии файла должен присутствовать флаг FILE_SHARE_READ …

А вот скрипт при открытии этого файла не может запрещать советнику в этот файл производить запись… Следовательно, скрипт при открытии файла должен открывать его с флагом FILE_SHARE_WRITE ……… но и флаг FILE_SHARE_READ в скрипте лишним не будет.

В то-же время тупо ставить оба флага нецелесообразно, хотя-бы для защиты от случайной ошибки и записи в файл мусора каким либо сторонним приложением. К примеру, вы открыли файл блокнотом, советник и скрипт позволяют это сделать……… Случайно зацепили клавишу, закрыли блокнот и нажали «Сохранить»……… Вот вам и ошибка…

 
Ну вот, Алексей объяснил всё, молодец! Спасибо.
 
igrok333 #:

а почему так? даже если скриптом я не пишу, только читаю?

Потому что у вас там запятая стоит после FILE_TXT, а все остальные флаги идут не туда.

 
Dmitry Fedoseev #:

Потому что у вас там запятая стоит после FILE_TXT, а все остальные флаги идут не туда.

да оно и без запятой не работало.

исправил запятую в первом сообщении.

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