FileReadString

この関数は、ファイルポインタの現在位置から文字列を読み込みます。

string  FileReadString(
  int  file_handle,    // ファイルハンドル
  int  length=-1        // 文字列の長さ
  );

パラメータ

file_handle

[in] FileOpen() から戻されたファイル記述子

length=-1

[in]  読まれる文字数

戻り値

読まれた行(string)

注意事項

バイナリファイルからの読み込みでは読まれる文字列の長さが指定されるべきです。TXTファイルから読み込む場合は文字列の長さが必要とされず、文字列は現在位置から改行文字「\r\n」まで読み込まれます。CSVファイルから読み込む場合は文字列の長さが必要とされず、文字列は現在位置から最寄りの区切り文字もしくははテキスト文字列の最後の文字まで読み込まれます。

ファイルが FILE_ANSI フラグで開かれた場合は、読まれた行はUnicode に変換されます。

FileWriteInteger 関数の例の実行によって取得されたファイルが使用されます)

//--- スクリプトの起動時に入力パラメータのウィンドウを表示する
#property script_show_inputs
//--- データ読み込みのパラメータ
input string InpFileName="Trend.bin"; // ファイル名
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 file is available for reading",InpFileName);
    PrintFormat("File path: %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("Data is read, %s file is closed",InpFileName);
    }
  else
    PrintFormat("Failed to open %s file, Error code = %d",InpFileName,GetLastError());
 }

参照

String Type, Conversion Functions, FileWriteInteger