FileReadArray

문자열을 제외한 모든 유형의 BIN 유형 배열 파일에서 읽습니다(문자열 포함 안 함, 동적 배열일 수 있음).).

uint  FileReadArray(
   int    file_handle,               // 파일 핸들
   void&  array[],                   // 기록할 배열
   int    start=0,                   // 쓸 배열 포지션 시작
   int    count=WHOLE_ARRAY          // 읽기 카운트
   );

Parameters

file_handle

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

array[]

[out] 데이터를 로드할 배열.

start=0

[in]  배열에서 읽을 시작 위치.

count=WHOLE_ARRAY

[in]  읽을 요소 수. 기본적으로 전체 배열을 읽습니다. (count=WHOLE_ARRAY).

반환 값

읽은 요소 수.

참고

문자열 배열은 TXT 유형의 파일에서만 읽을 수 있습니다. 필요한 경우 함수는 어레이의 크기를 늘립니다.

(FileWriteArray 함수에 대한 예제를 실행한 후 얻은 파일이 여기에 사용됩니다)

//--- 스크립트를 시작할 때 입력 매개 변수 창을 표시합니다
#property script_show_inputs
//--- 입력 매개 변수
input string InpFileName="data.bin";
input string InpDirectoryName="SomeFolder";
//+------------------------------------------------------------------+
//| 가격 데이터 저장 구조                                 |
//+------------------------------------------------------------------+
struct prices
  {
   datetime          date; // 날짜
   double            bid;  // 입찰가
   double            ask;  // 요청가
  };
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 구조 배열
   prices arr[];
//--- 파일 경로
   string path=InpDirectoryName+"//"+InpFileName;
//--- 파일 열기
   ResetLastError();
   int file_handle=FileOpen(path,FILE_READ|FILE_BIN);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- 파일에서 배열로 모든 데이터를 읽음
      FileReadArray(file_handle,arr);
      //--- 배열 규모 수령
      int size=ArraySize(arr);
      //--- 배열로부터 데이터 출력
      for(int i=0;i<size;i++)
         Print("Date = ",arr[i].date," Bid = ",arr[i].bid," Ask = ",arr[i].ask);
      Print("Total data = ",size);
      //--- 파일 닫기
      FileClose(file_handle);
     }
   else
      Print("파일 열기 실패, 오류 ",GetLastError());
  }

더 보기

Variables, FileWriteArray