Общайтесь с разработчиками через Сервисдеск! - страница 156

 

Добрый день!

Мой эксперт при запуске создает папку, с помощью функции FolderCreate. При повторном запуске будет срабатывать та же функция, хоть папку создавать уже не нужно, так как как она была создана во время предыдущего запуска эксперта. Функций для проверки существования папки я не нашел в документации. Нужно ли каким-либо образом проверять существование папки перед её созданием или же функция FolderCreate сделает это автоматически и ничего не будет делать, если папка с именем folder_name уже существует?

Документация по MQL5: Файловые операции / FolderCreate
Документация по MQL5: Файловые операции / FolderCreate
  • www.mql5.com
FolderCreate - Файловые операции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Mihail Matkovskij:

Добрый день!

Мой эксперт при запуске создает папку, с помощью функции FolderCreate. При повторном запуске будет срабатывать та же функция, хоть папку создавать уже не нужно, так как как она была создана во время предыдущего запуска эксперта. Функций для проверки существования папки я не нашел в документации. Нужно ли каким-либо образом проверять существование папки перед её созданием или же функция FolderCreate сделает это автоматически и ничего не будет делать, если папка с именем folder_name уже существует?

Воспользуйтесь функцией FileIsExist 

Возвращаемое значение

Возвращает true, если указанный файл существует.

Примечание

Проверяемый файл может оказаться поддиректорией. В этом случае функция FileIsExist() возвратит false, а в переменную _LastError будет записана ошибка 5018 - "Это не файл, а директория"

 
Alexey Viktorov:

Воспользуйтесь функцией FileIsExist 

Попробую. Хоть я и подозреваю, что функция FolderCreate сама делает проверку... Но всё же, это, пожалуй, лучше чем оставлять без проверки.

 

Здравствуйте. И снова portable версия MetaEditor'a перестала работать. Абсолютно аналогично как в моём предыдущем посте по данной проблеме: https://www.mql5.com/ru/forum/625/page150#comment_20468778

Билд моего терминала после обновления: 2774.


Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • 2020.12.30
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
Еще раз, приветствую разработчиков! Столкнулся с проблемой сохранения файлов для тестера. Мой эксперт сохраняет свой файл настроек (settings.set) в директории 

MQL5\Files\EA Folder. Этот файл нужен для работы эксперта во время торговли и при дебаге. С ним всё в порядке, он нормально сохраняется и загружается при запуске эксперта. Но мне понадобился еще один файл, он нужен для работы эксперта в тестере. Там, как известно, папка с файлами находится по адресу MQL5\Tester\Files, следуя документации. Для сохранения файла туда я решил попробовать задать путь следующим образом: 

testerFileName = TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL5\\Tester\\Files\\EA Folder\\settings.set"; 

и скопировать сохраненный файл настроек из папки  MQL5\Files\EA Folder с помощью функции FileCopy.

string fileName = "EA Folder\\settings.set"
string testerFileName = TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL5\\Tester\\Files\\EA Folder\\settings.set";
    
ResetLastError();
FileCopy(fileName, mcFileCommomFlag, testerFileName, mcFileCommomFlag|FILE_REWRITE); // копирование настроек, для тестера
int error = GetLastError();
Print(error);

Но еще до этого понял, что такая конструкция заведомо неправильная. И при запуске получил ошибку 5002. Файловые функции работают только согласно параметру common_flag и любой другой путь, за пределами данной песочницы, они не будут воспринимать. У тестера же своя файловая песочница. Но как же сделать так, чтобы эксперт автоматически сохранял копию настроек для работы в тестере? 
 
Сохраняйте в common каталог, посмотрите флаги работы с файлами
 
Renat Fatkhullin:
Сохраняйте в common каталог, посмотрите флаги работы с файлами

Действительно, с флагом FILE_COMMON эксперт в тестере видит ту же директорию, что и при торговле и дебаге. Спасибо!

 

попытался написать сообщение через терминал(МТ4 build 1320) на кириллице. Получилось то что получилось )


 
Alexandr Bryzgalov:

попытался написать сообщение через терминал(МТ4 build 1320) на кириллице. Получилось то что получилось )


Покажите языковые настройки Windows (язык программ не поддерживающих Юникод)

 
Vladimir Karputov:

Покажите языковые настройки Windows (язык программ не поддерживающих Юникод)

.

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