
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Насколько я знаю, если в файл не вносились изменения с помощью файловых функций (например FileWrite()), то закрывать его не нужно. Функция FileOpen() просто создает новый файл и эта операция не требует закрытия файла (в документации по этой функции, тоже не говорится, что файл нужно после создания закрывать).
Ой-ли! Сказочник https://docs.mql4.com/ru/files/fileopen
//--- правильный способ работы в "файловой песочнице"
ResetLastError();
filehandle=FileOpen("fractals.csv",FILE_WRITE|FILE_CSV);
if(filehandle!=INVALID_HANDLE)
{
FileWrite(filehandle,TimeCurrent(),Symbol(), EnumToString(ENUM_TIMEFRAMES(_Period)));
FileClose(filehandle);
Print("FileOpen OK");
}
else Pri
Ой-ли! Сказочник https://docs.mql4.com/ru/files/fileopen
В чем же противоречие с тем, что я сказал?
Я же сказал, -
Реter Konow:
Насколько я знаю, если в файл не вносились изменения с помощью файловых функций (например FileWrite()), то закрывать его не нужно. Функция FileOpen() просто создает новый файл и эта операция не требует закрытия файла (в документации по этой функции, тоже не говорится, что файл нужно после создания закрывать).
А у Вас в примере используется функция FileWrite() сразу после создания файла. А потом используется FileClose(filehandle);
К тому же в приведенном коде скрипта я добавил явное закрытие, но это ничего не решило...
Именно так. Когда я пытаюсь удалить папку уже содержащую подпапки и файлы, то сначала удаляю файлы. Остаются только подпапки. Их пытаюсь очистить с помощью FolderClean() и потом вызываю FolderDelete(). Однако, в результате те подпапки которые были пусты хорошо удаляются, но если внутри подпапок были еще подпапки - они не удаляются. После этого, я пытаюсь удалить папки из файлового навигатора в MetaEditor вручную, но терминал их не удаляет и выскакивает это окно:
Нажимаю на "Continue", соглашаюсь на изменения, но папка все равно не стирается. После полного закрытия и повторного открытия терминала, папки которые должны были быть стерты либо сами исчезают, либо нет, но при этом их уже можно сразу стереть вручную без вышеприведенного окна.
Вот такие странности...
Наблюдал неоднократно такие вещи. Выяснил, что в какой-то момент папка Files со всеми подпапками и файлами получает атрибут read-only. Снятие руками этого флага не помогает. Но всегда помогает перезапуск терминала. Добиться воспроизведения не смог (не пытался), поэтому в СД не сообщал.
У ошибка (5022) возникает только если задать FILE_COMMON
Папку очищает, но не удаляет
Этот флаг ставить не нужно, иначе поиск файла будет происходить в общей папке, а ошибка говорит, что задано не верное имя директории.
Дорожка к файлу
"\\MQL4\\Files";
не требует установки этого флага. Так что все правильно.
Наблюдал неоднократно такие вещи. Выяснил, что в какой-то момент папка Files со всеми подпапками и файлами получает атрибут read-only. Снятие руками этого флага не помогает. Но всегда помогает перезапуск терминала. Добиться воспроизведения не смог (не пытался), поэтому в СД не сообщал.
Этот флаг ставить не нужно, иначе поиск файла будет происходить в общей папке, а ошибка говорит, что задано не верное имя директории.
и с FILE_COMMON и без - работает (первоначально при проверке забыл этот флаг в последний if поставить). С FILE_COMMON подразумевалость что он во всех операциях присутствует
Этот флаг ставить не нужно, иначе поиск файла будет происходить в общей папке, а ошибка говорит, что задано не верное имя директории.
Дорожка к файлу
не требует установки этого флага. Так что все правильно.
Странно всё это. Я заметил что в пути к папкам MQL4 и перекомпилировал код в .ex4 и как ни странно, код отработал без ошибок. Удалил закрытие файла и получил
Потом без исправлений запустил на мт5 и, как ни странно, упоминание о папке MQL4 было проигнорировано. Папки и файл были созданы в папке MQL5. Дальше всё аналогично проверке в МТ4. Не закрытый файл не удаляется...
Странно всё это. Я заметил что в пути к папкам MQL4 и перекомпилировал код в .ex4 и как ни странно, код отработал без ошибок. Удалил закрытие файла и получил
Потом без исправлений запустил на мт5 и, как ни странно, упоминание о папке MQL4 было проигнорировано. Папки и файл были созданы в папке MQL5. Дальше всё аналогично проверке в МТ4. Не закрытый файл не удаляется...
Всмысле Вы сделали из скрипта советник и попробовали его запустить?
Но я его закрываю, а проблема остается... Увы...(