Пытаюсь вставить дату и время в имя файла, но функция FileOpen() отказывается открывать для записи файлы с более, чем 12 символами в имени, даже если они начинаются с буквы.
Похоже есть и ещё какие-то ограничения.
Кто-нибудь разбирался?
Вот тяжело говорить, когда нет кода. Пришлось самому писать и проверять:
#property strict void OnStart() { int nFile = FileOpen("A12345678901234567890.txt", FILE_WRITE); if (nFile == INVALID_HANDLE) { Alert("Ошибка открытия файла: ", GetLastError()); return; } FileWriteString(nFile, "My string"); FileClose(nFile); }
Файл исправно создается.
При работе с файловой системой избегайте кириллических символов в именах каталогов и файлов. С ними иногда возникают проблемы.
Добрый день.
Пользуюсь функцией преобразования, которую давно нашел на форуме :
string StrTran(string str, string strfrom, string strto) { int n; string outstr="", tempstr; for (n=0; n<StringLen(str); n++) { tempstr=StringSubstr(str, n, StringLen(strfrom)); if (tempstr==strfrom) { outstr=outstr+strto; n=n+StringLen(strfrom)-1; } else outstr=outstr+StringSubstr(str, n, 1); } return(outstr); }
вызов следующий:
string name=Prefix_File+TimeToStr(iTime(_Symbol,PERIOD_W1,0),TIME_DATE|TIME_MINUTES|TIME_SECONDS); name=_Symbol+"//"+StrTran(name, ":", ".");
Вот тяжело говорить, когда нет кода. Пришлось самому писать и проверять:
Файл исправно создается.
При работе с файловой системой избегайте кириллических символов в именах каталогов и файлов. С ними иногда возникают проблемы.
Спасибо!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пытаюсь вставить дату и время в имя файла, но функция FileOpen() отказывается открывать для записи файлы с более, чем 12 символами в имени, даже если они начинаются с буквы.
Похоже есть и ещё какие-то ограничения.
Кто-нибудь разбирался?