問題コード - ページ 2

 
burnssss:

エキスパートで似たようなコードを作って、月別データなどのファイルを書いてみたのですが


しかし、これ以上1970年からデータをダウンロードすることはできません。

私たちが使用したコードは次のとおりです。

私はすでにこれは動作しない理由を説明するリンクを与えた、あなたはそれを読んだのですか?

RaptorUK

フォーラムの検索を使用してください... ...

https://www.mql5.com/en/forum/147170

... ... そして、ドキュメント

 
RaptorUK:
No has respondido a mi pregunta simple, donde en el archivo es lo que desea colocar los nuevos datos? si se piensa que por unos minutos le ayudará.. .

古いデータの続き?私は、私が使用しなければならないことを理解していないとどこでデータのダウンロードを実行し続けるために
 
FILEREAD /file_write の組み合わせは作ったばかりなのに、同じことを繰り返しています。何か理解できない
 
burnssss:
FILEREAD / file_write の組み合わせは作ったばかりなのに、同じことを繰り返しています。私が理解していない何か
ファイルにデータ行を書き込むたびに、新しいデータ行にしたい、あなたはそれがちょうどあなたが書いた行を上書きしたくない ... 新しいデータ行を書き込む前に、ファイルの終わりまでFileSeek()をする必要があります。... それから新しい行のデータを書き込んでください。
 
やってみる
 

私は理解できませんが、以前と同じです。

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
export();
  }

//+------------------------------------------------------------------+
void export() 
{ 

string file="export_"+Symbol()+"_"+Period()+".csv"; 
int f=FileOpen(file,FILE_CSV|FILE_READ|FILE_WRITE, ';'); 
if(f>0)
{
     FileSeek(f, 0, SEEK_END);
   
    }



for(int i=Bars-1;i>=0;i--)
{
FileWrite(f,TimeToStr(Time,TIME_DATE|TIME_MINUTES),Open,High,Low,Close ,iFractals(Symbol(),0,1,i),iFractals(Symbol(),0,2,i),iCustom(Symbol(), 
0,"ZigZag",0,i),iCustom(Symbol(),0, "ZigZag",1,i));
Alert("Export "+Symbol()+" finished. Exported: "+Bars+" records"); 
FileClose(f);
  f=0;
}
}
 
burnssss:

私は理解できませんが、以前と同じです。

なぜループの中でファイルを閉じているのですか? テストする前にあなたのコードを読んで、それが意味をなしているかどうか確認してください ... ...
 

コードでは、私は正しい手順を使用していると思います。私はあなたがファイルですべてのデータをダウンロードする必要があると思います。Csvは、しかし、私はこれを行う理由を理解していない。

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
export();
  }

//+------------------------------------------------------------------+
void export() 
{ 

string file="export_"+Symbol()+"_"+Period()+".csv"; 
int f=FileOpen(file,FILE_READ|FILE_WRITE, ';'); 
if(f>0)
{
     FileSeek(f, 0, SEEK_END);
   
    }



for(int i=Bars-1;i>=0;i--)
{
FileWrite(f,TimeToStr(Time,TIME_DATE|TIME_MINUTES),Open,High,Low,Close ,iFractals(Symbol(),0,1,i),iFractals(Symbol(),0,2,i),iCustom(Symbol(),0,"ZigZag",0,i),iCustom(Symbol(),0, "ZigZag",1,i));
}

Alert("Export "+Symbol()+" finished. Exported: "+Bars+" records");  
FileClose(f); 
}
 
burnssss:

コードでは、私は正しい手順を使用していると思います。私はあなたがファイルですべてのデータをダウンロードする必要があると思います。Csvは、しかし、私はこれを行う理由を理解していない。

ループがiの 最初の値のために実行されるとき、それはデータを書き込んでからファイルを閉じ、ループ内のiの 次の値のためにファイルが閉じられる ... ... 何が起こると思いますか?
 
ありがとうございます、解決策が見つかりました。