Ошибки, баги, вопросы - страница 2434

 

Как по хэндлу узнать имя файла?

FileGetString  отсутствует.

 
fxsaber:

Как по хэндлу узнать имя файла?

FileGetString  отсутствует.

думаю никак, обычно хэндлы, дескрипторы и др. описатели это виртуальные таблицы целых чисел, которые привязываются ОС или окружением программы к конкретным физическим событиям/драйверам/окнам...

я не так давно стал использовать работу с фалами с помощью СБ ,довольно удобно и вот для Вашего случая есть готовое решение https://www.mql5.com/ru/docs/standardlibrary/fileoperations/cfile

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

Как по хэндлу узнать имя файла?

FileGetString  отсутствует.

Никак
 
Igor Makanu:

думаю никак, обычно хэндлы, дескрипторы и др. описатели это виртуальные таблицы целых чисел, которые привязываются ОС или окружением программы к конкретным физическим событиям/драйверам/окнам...

я не так давно стал использовать работу с фалами с помощью СБ ,довольно удобно и вот для Вашего случая есть готовое решение https://www.mql5.com/ru/docs/standardlibrary/fileoperations/cfile

Понятно, что можно сохранить имя файла. Но все же странно выглядит, что нельзя сделать элементарного.

Slava:
Никак

А хорошо бы.

 
fxsaber:

Понятно, что можно сохранить имя файла. Но все же странно выглядит, что нельзя сделать элементарного.

думаю, что нужно себя заставлять пользоваться готовыми решениями, по крайней мере я на этом пути, вот в течении 5 минут сделал запись OHLC в файл

#property copyright "Copyright 2019, IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict
#property show_inputs
input string FName="tst";
#include <Files\FileTxt.mqh>

CFileTxt *FOut;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   FOut=new CFileTxt();
   string sname=FName+"_"+_Symbol+"_"+EnumToString((ENUM_TIMEFRAMES)_Period)+".csv";
   FOut.Open(sname,FILE_WRITE|FILE_TXT);
   Print("Open file");
   Print("File name = ",FOut.FileName());
   int count=0;
   for(int i=Bars-1;i>=0;i--)
     {
      string s=TimeToStr(Time[i])+";"+DoubleToStr(Open[i],_Digits)+";"+DoubleToStr(High[i],_Digits)+";"+DoubleToStr(Low[i],_Digits)+";"+DoubleToStr(Close[i],_Digits)+"\n";
      FOut.WriteString(s);
      count++;
     }
   Print("Write ",count," bars");
   FOut.Flush();
   FOut.Close();
   delete FOut;
  }

при использовании класса  CFileTxt не нужно думать где взять свойства файла - все доступно на всем протяжении выполнения программы

 
Igor Makanu:

думаю, что нужно себя заставлять пользоваться готовыми решениями, по крайней мере я на этом пути, вот в течении 5 минут сделал запись OHLC в файл

Вы сделали это

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2019.04.17 14:00

Понятно, что можно сохранить имя файла. Но все же странно выглядит, что нельзя сделать элементарного.

 
fxsaber:

Вы сделали это

да я знаю, но тут просто нужно попытаться понять идеологию разработчиков - они довольно много готовых решений подготовили в СБ, 

 
fxsaber:

Понятно, что можно сохранить имя файла. Но все же странно выглядит, что нельзя сделать элементарного.

А хорошо бы.

Зачем?

 
Igor Makanu:

да я знаю, но тут просто нужно попытаться понять идеологию разработчиков - они довольно много готовых решений подготовили в СБ, 

Безусловно, это понятно. Все же речь шла о другом.

 
Slava:

Зачем?

Отлаживаю чужой код, в котором идет передача хендлов из одних методов в другие функции.

Хочу сделать распринтовку конкретного хендла, что сейчас используется в стоп-строке - что за файл? И сделать это ну очень сложно.

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