FileReadString

이 함수는 파일에 있는 파일 포인터의 현재 위치에서 문자열을 읽습니다.

string  FileReadString(
   int  file_handle,     // 파일 핸들
   int  length=-1        // 문자열 길이
   );

Parameters

file_handle

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

length=-1

[in]  읽을 문자 수.

반환 값

Line read (string).

참고

bin 파일에서 읽을 때. 읽을 문자열의 길이를 지정해야 합니다. txt 파일에서 읽을 때는 문자열 길이가 필요하지 않으며, 문자열은 현재 위치에서 라인 피드 문자 "\r\n"까지 읽힙니다. CSV 파일에서 읽을 때는 문자열 길이도 필요하지 않습니다. 문자열은 현재 위치에서 가장 가까운 구분 기호 또는 텍스트 문자열 끝 문자까지 읽힙니다.

파일이FILE_ANSI 플래그로 열리면, 라인 읽기가 Unicode로 변환됩니다.

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

//--- 스크립트를 시작할 때 입력 매개 변수 창을 표시합니다
#property script_show_inputs
//--- 데이터 읽기를 위한 파라미터
input string InpFileName="Trend.bin"// file name
input string InpDirectoryName="Data"// 디렉토리명
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 파일 열기
   ResetLastError();
   int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_BIN|FILE_ANSI);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("%s 파일을 읽을 수 있습니다",InpFileName);
      PrintFormat("파일 경로: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- 부가 변수
      int    str_size;
      string str;
      //--- 파일에서 데이터 읽기
      while(!FileIsEnding(file_handle))
        {
         //--- 시간을 작성하는데 얼마나 많은 심볼이 사용되는지 확인
         str_size=FileReadInteger(file_handle,INT_VALUE);
         //--- 문자열 읽기
         str=FileReadString(file_handle,str_size);
         //--- 문자열 출력
         PrintFormat(str);
        }
      //--- 파일 닫기
      FileClose(file_handle);
      PrintFormat("데이터를 읽습니다, %s 파일이 닫힙니다",InpFileName);
     }
   else
      PrintFormat("%s 파일 열기 실패, 에러 코드 = %d",InpFileName,GetLastError());
  }

더 보기

String Type, Conversion Functions, FileWriteInteger