FileSave

매개 변수로 전달된 배열의 모든 요소를 이진 파일에 씁니다. 이 함수를 사용하여 숫자 타입 또는 단순 구조의 배열을 하나의 문자열로 빠르게 작성할 수 있습니다.

bool  FileSave(
   const string  file_name,         // 파일명
   void&         buffer[],          // 숫자 유형 또는 단순 구조 배열
   int           common_flag=0      // ㅏ파일 플래그(기본적으로 파일)은 <data_folder>\MQL5\Files\에 기록됩니다
   );

Parameters

file_name

[in]  데이터 배열에 파일명이 기록됩니다.

buffer

[in]  숫자 타입 또는 단순 구조의 배열.

common_flag=0

[in]  작업 모드를 나타내는 파일 플래그. 매개 변수를 지정하지 않으면 파일이 하위 폴더 MQL5\Files(또는 테스트의 경우 <testing_agent_directory>\MQL5\Files)에 기록됩니다.

반환 값

실패 시 False를 반환합니다.

예:

//+------------------------------------------------------------------+
//|                                                Demo_FileSave.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                             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; // Number of ticks
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
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)가 %d 틱을 복제했습니다",_Symbol,copied);
      //--- 틱 기록이 동기화되면 오류 코드가 0이 됩니다
      if(!GetLastError()==0)
         PrintFormat("%s: 틱이 동기화되지 않았습니다, error=%d",_Symbol,copied,_LastError);
      //---  파일에 틱 쓰기
      if(!FileSave(filename,ticks,FILE_COMMON))
         PrintFormat("FileSave() 실패, error=%d",GetLastError());
     }
   else
      PrintFormat("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);
        }
     }
  }

더 보기

Structures and Classes, FileWriteArray, FileWriteStruct, FileLoad, FileWrite