エラー、バグ、質問 - ページ 2434

 

ハンドルネームからファイル名を知るには?

FileGetStringがない。

 
fxsaber:

ハンドルネームからファイル名を知るには?

FileGetStringがない。

できないと思います。通常、ハンドルやディスクリプタなどは整数の仮想テーブルで、OSやプログラム環境によって特定の物理イベント/ドライバ/ウィンドウに束縛されています...。

最近、SBを使ってハーフの仕事をするようになりました。かなり便利で、ここにあなたのケースに対応する既製のソリューションがあります。https://www.mql5.com/ru/docs/standardlibrary/fileoperations/cfile

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

ハンドルネームからファイル名を知るには?

FileGetStringがない。

まさか
 
Igor Makanu:

できないと思います。通常、ハンドルやディスクリプタなどは整数の仮想テーブルで、OSやプログラム環境によって特定の物理イベント/ドライバ/ウィンドウに束縛されています...。

SBでのファイル管理はかなり便利で、こんなケースにも対応できるようになっていますhttps://www.mql5.com/ru/docs/standardlibrary/fileoperations/cfile

ファイル名を保存できることがわかる。それでも、基本的なことができないのはおかしいと思います。

スラバ
まさか

できればいいんですけどね。

 
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:

やりましたね。

しかし、SBには既成のソリューションがたくさんありますから、開発者の思想を理解する必要があります。

 
fxsaber:

ファイル名の保存が可能であることがわかる。でも、やっぱり初歩的なことができないのはおかしいと思うんです。

そして、それは良いことでしょう。

何のために?

 
Igor Makanu:

でも、ここは開発者の思想を理解すること。SBには既成のソリューションがたくさんありますから。

確かに理解できますね。でも、そういうことではないんです。

 
Slava:

なぜ?

あるメソッドから他の関数にハンドルを転送している他の人のコードをデバッグしているところです。

現在停止線で使用されている特定のハンドルを解除したいのですが、どのようなファイルですか?そして、それは本当に難しいことなのです。