FileSave

配列のすべての要素をパラメータとして渡されたバイナリファイルに書き込みます。この関数を使用すると、数値型または単純な構造体型の配列をすぐに単一の文字列として書くことができます。

bool  FileSave(
  const string file_name,        // ファイル名
  void&        buffer[],          // 数値型または単純な構造体型の配列
  int          common_flag=0     // ファイルフラグ、デフォルトでは <data_folder>\MQL5\Files\ に書かれる
  );

パラメータ

file_name

[in]  データ配列の書き込み先のファイル名

buffer

[in]  数値型または単純な構造体型の配列。

common_flag=0

[in]  操作モードを示すファイルフラグ。このパラメータが指定されていない場合、ファイルは MQL5\Files サブフォルダ(または検証の場合 <testing_agent_directory>\MQL5\Files )に書かれます。

戻り値

失敗の場合 false

例:

//+------------------------------------------------------------------+
//|                                                Demo_FileSave.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link     "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
//--- 入力パラメータ
input int     ticks_to_save=1000; // ティック数
//+------------------------------------------------------------------+
//| スクリプトプログラムを開始する関数                                          |
//+------------------------------------------------------------------+
void OnStart()
 {
  string  filename=_Symbol+"_ticks.bin";
  MqlTick ticks[];
u//---
  int copied=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,ticks_to_save);
  if(copied!=-1)
    {
    PrintFormat(" CopyTicks(%s) copied %d ticks",_Symbol,copied);
    //--- ティック履歴が同期されている場合はエラーコードは0に等しい
    if(!GetLastError()==0)
        PrintFormat("%s: Ticks are not synchronized, error=%d",_Symbol,copied,_LastError);
    //---  ティックをファイルに書く
    if(!FileSave(filename,ticks,FILE_COMMON))
        PrintFormat("FileSave() failed, error=%d",GetLastError());
    }
  else
    PrintFormat("Failed CopyTicks(%s), Error=",_Symbol,GetLastError());
//--- ティックをファイルに読み返す
  ArrayFree(ticks);
  long count=FileLoad(filename,ticks,FILE_COMMON);
  if(count!=-1)
    {
    Print("Time\tBid\tAsk\tLast\tVolume\tms\tflags");
    for(int i=0;i<count;i++)
       {
        PrintFormat("%s.%03I64u:\t%G\t%G\t%G\t%I64u\t0x%04x",
        TimeToString(ticks[i].time,TIME_DATE|TIME_SECONDS),ticks[i].time_msc%1000,
        ticks[i].bid,ticks[i].ask,ticks[i].last,ticks[i].volume,ticks[i].flags);
       }
    }
 }

参照

構造体とクラスFileWriteArrayFileWriteStruct, FileLoad, FileWrite