FileWriteFloat

파일 포인터의 현재 위치부터 float 타입 파라미터 값을 바이너리 파일에 씁니다.

파일 포인터의 현재 위치부터 float 타입 파라미터 값을 텍스트로 변환하여 CSV 또는 텍스트 파일에 씁니다.

uint  FileWriteFloat(
   int    file_handle,     // 파일 핸들
   float  value            // 작성될 값
   );

Parameters

file_handle

[in] FileOpen()에서 반환된 파일 설명자.

value

[in] float 타입의 값.

반환 값

성공하면 함수는 기록된 바이트 수를 반환합니다(바이너리 파일에 쓸 때 — sizeof(float)=4). 파일 포인터는 같은 바이트 수만큼 이동합니다.

참고

바이너리 파일에 쓰는 경우 float 타입 파라미터로 FileWrite 함수를 호출하는 것과 같습니다

float float_value;
FileWrite(file_handle,float_value);

예:

//+------------------------------------------------------------------+
//|                                          Demo_FileWriteFloat.mq5 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- 스크립트를 시작할 때 입력 매개 변수의 창을 표시합니다.
#property script_show_inputs
//--- 터미널에서 데이터를 수신하기 위한 매개 변수
input string          InpSymbolName="EURUSD";           // 통화
input ENUM_TIMEFRAMES InpSymbolPeriod=PERIOD_M15;       // 타임프레임
input datetime        InpDateStart=D'2013.01.01 00:00'; // 데이터 복사 시작 날짜
//--- 파일에 데이터를 쓰기 위한 매개 변수
input string          InpFileName="Close.bin"; // 파일명
input string          InpDirectoryName="Data"; // 디렉토리명
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime date_finish=TimeCurrent();
   double   close_buff[];
   datetime time_buff[];
   int      size;
//--- 에러값 리셋
   ResetLastError();
//--- 매 막대의 종가 복제
   if(CopyClose(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,close_buff)==-1)
     {
      PrintFormat("종가 값 복제 실패. Error code = %d",GetLastError());
      return;
     }
//--- 매 막대의 시간 복제
   if(CopyTime(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,time_buff)==-1)
     {
      PrintFormat("시간 값 복제 실패. Error code = %d",GetLastError());
      return;
     }
//--- 버퍼 사이즈 수령
   size=ArraySize(close_buff);
//--- 값 쓰기를 위해 파일 오픈(파일이 없을 경우 자동으로 생성됨)
   ResetLastError();
   int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_WRITE|FILE_BIN);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("%s 파일이 쓰기를 위해 열렸습니다",InpFileName);
      PrintFormat("파일 경로: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- 종가 시간과 값을 파일에 기록
      for(int i=0;i<size;i++)
        {
         FileWriteDouble(file_handle,(double)time_buff[i]);
         FileWriteFloat(file_handle,(float)close_buff[i]);
        }
      //--- 파일 닫기
      FileClose(file_handle);
      PrintFormat("데이터가 작성됐습니다, %s 파일이 닫힙니다",InpFileName);
     }
   else
      PrintFormat("%s 파일 열기 실패, 에러 코드 = %d",InpFileName,GetLastError());
  }

더 보기

Real types (double, float), FileWriteDouble