ファイルへの書き込みを改行で行う - ページ 4

 

行の上に、少なくとも最初の行の代わりに新しい行を 書くことは、特別な困難なく可能なようです。


//Открываем файл 
   int h1=FileOpen("Copy.txt",FILE_WRITE | FILE_READ,";");
   FileSeek(h1, 0, SEEK_SET);
   FileWrite(h1,Symbol(),OP_BUYSTOP,OrderLots()*Koof,OrderStopLoss(),Slippage,0,0,IntegerToString(OrderTicket()));
   FileClose(h1);
// закрываем файл
 
今、あなたには選択肢がある、どうするかはあなた次第だ
 
EfremovSergey:

行の上に書き込んだり、少なくとも最初の行の代わりに新しい行を 書き込むことは、特別な困難なくできるようです。


見事だ! ピンチの時、ニッケルで...。

書き留めなければならないことがあれば、書き留めなければならない。どこで、いつ、どのように、なぜ、誰が、などということはどうでもいいのです。私たちの仕事は、それを書き留めることであり、それを読む必要がある人は、自分で読めばいいのです......。

 
Maxim Kuznetsov:

素晴らしい! その通りだ、その通り...

書き残すべきものがあれば、書き残さなければならない。どこで、いつ、どのように、なぜ、誰が、などということはどうでもいいのです。私たちの仕事はそれを書き留めることであり、誰がそれを読む必要があるのか、それは自分でやらせればいいのです...。

まあ、そうですね、それはあまり選択肢にないですね...。

新しい情報を書き込んだり、一行だけゴミ箱に入れたりできるのに、なぜか削除が全くできない...。異聞

 

ファイルの操作方法がわかりました、ありがとうございました、そしてありがとうございました。

そんな質問、ちょっとオフトピックです。

行を読んだ結果

string s=FileReadString(h)

注文を出すためのデータを意味するsの値を取得します。例:EURUSD,5,0.02,1.17808,70,0,0,302090516

開くべき注文の各構成記述 部分を個別に抽出することなく、この値を全体としてOrderSend操作に何とか代入できないか。

OrderSend(s)

もちろん、動作しません

OrderSend - Торговые функции - Справочник MQL4
OrderSend - Торговые функции - Справочник MQL4
  • docs.mql4.com
[in]  Цвет открывающей стрелки на графике. Если параметр отсутствует или его значение равно CLR_NONE, то открывающая стрелка не отображается на графике. При открытии рыночного ордера (OP_SELL или OP_BUY) в качестве цены открытия могут использоваться только самые последние цены Bid (для продажи) или Ask (для покупки). Если операция проводится по...
 
この関数は、異なる型のいくつかの変数の値を取り、あなたは文字列を持っています。
 
EfremovSergey:

私の考えでは、すでに処理された情報を捨てなければ、再分析のためにリソースを使わなければならなくなります。

1つのEA内であれば情報は、それ自体を読む必要がなければファイルに書き込む必要はない。 もし外部からであれば、読み込んだ後に空のファイルをファイルに書き込む。

 
Aleksei Stepanenko:
この関数は、異なる型のいくつかの変数の値を取り、あなたは文字列を持っています。

それが問題なんだ...。文字列から変数列挙を "簡単に "作る方法。StringSubstr関数を 使用すると、非常に汎用性のない解決策になります。StringSplitは、その仕組みをよく理解していない...。もしかしたら、何らかの変換ができるかも?

 
Valeriy Yastremskiy:

情報は、1EA以内であれば、自分で読む必要がなければ、ファイルに書き込む必要はない。外部からであれば、読んだ後に空のファイルをファイルに書き込む。

もし、任意のペアの注文をオープンするEAを別に作り、特定のペアのEAがすでにオープンオーダーをコントロールにインターセプトするのであれば、これはおそらくうまくいくでしょうが、もし特定のペアの各EAが個別にファイルを扱う必要があるなら、この方法での同期は不可能でしょう。

 

もう一度、使いやすい配列のイメージをお伝えします。

struct MyData
   {
   string   symbol;              // символ
   int      operation;           // торговая операция
   double   lot;                 // количество лотов
   double   stoploss;            // stop loss
   double   takeprofit;          // take profit
   int      magic;               // идентификатор
   } my[];

for(int i=0; i<ArraySize(my); i++)
   {
   if(my[i].magic==MagicNumber)
      {
      eTicket=OrderSend(my[i].symbol,my[i].operation,my[i].lot,ePrice,(int)SymbolInfoInteger(my[i].symbol,SYMBOL_SPREAD),
			my[i].stoploss,my[i].takeprofit,NULL,my[i].magic,0,eColor);
      }
   }

この配列をファイルに保存する方法は、すでに書きました。

あるいは、文字列を解析する。