Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликуй статью. Мы сами переведем ее на другие языки!
Андрей
44
Андрей 2011.03.24 12:29 

Доброго всем времени суток!

Уважаемые профи подскажите пожалуйста каким образом мне можно создать файл в определенном каталоге? Например:

я хочу чтобы мой файл - EURUSD_текущее число.csv был сохранен в каталоге каталог_терминала\experts\files\год_месяц\EURUSD\.

Я делаю так fileopen("EURUSD_"+TimeToStr(TimeCurrent(),TIME_DATE)+".csv",FILE_CSV\FILE_READ\FILE_WRITE,";"). а как путь дописать типа

Year()+"_"+Month()

Левитин Сергей В.
5155
Левитин Сергей В. 2011.03.24 12:34  

Доброго,

через WinApi и никак иначе

https://www.mql5.com/ru/articles/1540

З.Ы. Опять поиск по сайту не работает, что там с ним такое?, живет своей жизнью)

Комбинатор
15642
Комбинатор 2011.03.24 12:40  
FileOpen(Year() + "_" + Month() + "\\EURUSD\\" + Day() + ".csv",FILE_CSV | FILE_READ | FILE_WRITE,";");

Должен сохранить по идее в каталог_терминала/experts/files/2011_3/EURUSD/21.csv

Левитин Сергей В.
5155
Левитин Сергей В. 2011.03.24 12:43  
TheXpert:
Должен сохранить по идее в каталог_терминала/experts/files/2011_3/EURUSD/21.csv


Раньше такой вариант точно не прокатывал, может что-то изменилось? Каталоги у меня точно не создавались....

https://docs.mql4.com/ru/files

Существует три каталога (с подкаталогами), в которых могут располагаться рабочие файлы:

  • /HISTORY/<текущий брокер> - специально для функции FileOpenHistory;
  • /EXPERTS/FILES - общий случай;
  • /TESTER/FILES - специально для тестирования.

Работа с файлами из других каталогов пресекается.

Андрей
44
Андрей 2011.03.24 12:46  
Figar0:


Раньше такой вариант точно не прокатывал, может что-то изменилось?

https://docs.mql4.com/ru/files

Существует три каталога (с подкаталогами), в которых могут располагаться рабочие файлы:

  • /HISTORY/<текущий брокер> - специально для функции FileOpenHistory;
  • /EXPERTS/FILES - общий случай;
  • /TESTER/FILES - специально для тестирования.

Работа с файлами из других каталогов пресекается.


int FileOpen( string filename, int mode, int delimiter=';')
Открывает Файл для ввода и/или вывода. Возвращает файловый описатель открытого файла или -1 в случае неудачи. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Замечания: файлы могут открываться только в папке каталог_терминала\experts\files (каталог_терминала\tester\files в случае тестирования эксперта) или ее подпапках.
Андрей
44
Андрей 2011.03.24 12:50  
TheXpert:
Должен сохранить по идее в каталог_терминала/experts/files/2011_3/EURUSD/21.csv

Вот что-то со слешами не то - после них происходит инверсия кавычек
Комбинатор
15642
Комбинатор 2011.03.24 12:50  
Figar0:

Работа с файлами из других каталогов пресекается.

Так условие не нарушается. Только что проверил, все работает. И всегда работало.

kifa911:

Вот что-то со слешами не то - после них происходит инверсия кавычек

Исправил, вы там неправильно флаги объединяли, пробуйте.

Левитин Сергей В.
5155
Левитин Сергей В. 2011.03.24 12:50  
kifa911:

Замечания: файлы могут открываться только в папке каталог_терминала\experts\files (каталог_терминала\tester\files в случае тестирования эксперта) или ее подпапках.

Давно это было, точно не вспомню, но у меня попытка именно создавать подкаталоги не получалась... Может я что-то не так делал? Хотя у меня изначально задача была несколько другая: работать с одним файлом из тестера и из советника работающего на счете. Так что наверно Вы правы.

ТС попробует и нам скажет)

Андрей
44
Андрей 2011.03.24 12:59  
TheXpert:

Так условие не нарушается. Только что проверил, все работает. И всегда работало.

Исправил, вы там неправильно флаги объединяли, пробуйте.


В какую сторону должны быть направлены слеши в коде так "/EURUSD/" или обратно?
Комбинатор
15642
Комбинатор 2011.03.24 13:01  
kifa911:
В какую сторону должны быть направлены слеши в коде так "/EURUSD/" или обратно?
Лучше конечно обратно, но т.к. \ это специальный символ, его надо записывать вот так: "\\EURUSD\\"
Андрей
44
Андрей 2011.03.24 19:31  
TheXpert:
Лучше конечно обратно, но т.к. \ это специальный символ, его надо записывать вот так: "\\EURUSD\\"

Вот, что у меня получается:

   string sEURUSD=Year()+"_"+Month()+"\\EURUSD\\"+"EURUSD_"+TimeToStr(TimeCurrent()+TIME_DATE)+".csv";
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий