Кто знает ограничения на имена файлов в MQL4?

 

Пытаюсь вставить дату и время в имя файла, но функция FileOpen() отказывается открывать для записи файлы с более, чем 12 символами в имени, даже если они начинаются с буквы.

Похоже есть и ещё какие-то ограничения.

Кто-нибудь разбирался?

 
Evgeny Potapov:

Пытаюсь вставить дату и время в имя файла, но функция 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, ":", ".");
 
Ihor Herasko:

Вот тяжело говорить, когда нет кода. Пришлось самому писать и проверять:

Файл исправно создается.

При работе с файловой системой избегайте кириллических символов в именах каталогов и файлов. С ними иногда возникают проблемы.

Спасибо!