FileReadComplexDouble

ファイルポインタの現在位置から、バイナリファイルまたは CSV ファイル内の complex 型の数値を読み取ります。

complex FileReadComplexDouble(
  int     file_handle     // ファイルハンドル
  );

パラメータ

file_handle

[in] FileOpen() から返されたファイル記述子です。

戻り値

complex 型の値です。

注意

エラー情報を取得するには、GetLastError() を呼び出します。

バイナリファイルから 16 バイトを読み取ります。

CSV ファイルから、現在位置から区切り文字(またはテキスト行の末尾)までの文字列を読み取り、読み取った文字列を complex 型の値に変換します。

complex 型のパラメータを指定した FileRead 関数呼び出しと同等です:

complex complex_value;
FileRead(file_handle,complex_value);

 

例:

//+------------------------------------------------------------------+
//|                                         TestWriteReadComplex.mq5 |
//|                                  Copyright 2026, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026, MetaQuotes Ltd."
#property link     "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                    |
//+------------------------------------------------------------------+
void OnStart()
 {
  complex complex_value=1.012345+0.0001i;
  complexf complexf_value=complexf(0.00678+0.005i);
//--- CSV ファイルへの書き込み
  int file_handle=FileOpen("complex.csv",FILE_CSV|FILE_WRITE|FILE_ANSI);
  uint written=FileWriteComplexDouble(file_handle,complex_value);
  Print("written ",written," bytes");
  FileWriteString(file_handle,"\t");
  written=FileWriteComplexFloat(file_handle,complexf_value);
  Print("written ",written," bytes");
  FileWriteString(file_handle,"\n");
  FileClose(file_handle);
  complex complex_value2;
  complexf complexf_value2;
//--- CSV ファイルからの読み込み
  file_handle=FileOpen("complex.csv",FILE_CSV|FILE_READ|FILE_ANSI);
  complex_value2=FileReadComplexDouble(file_handle);
  complexf_value2=FileReadComplexFloat(file_handle);
  FileClose(file_handle);
  Print("complex_value2=",complex_value2);
  Print("complexf_value2=",complexf_value2);
//--- バイナリファイルへの書き込み
  file_handle=FileOpen("complex.bin",FILE_BIN|FILE_WRITE);
  written=FileWriteComplexDouble(file_handle,complex_value);
  Print("\nwritten ",written," bytes");
  written=FileWriteComplexFloat(file_handle,complexf_value);
  Print("written ",written," bytes");
  FileClose(file_handle);
  complex complex_value3;
  complexf complexf_value3;
//--- バイナリファイルからの読み込み
  file_handle=FileOpen("complex.bin",FILE_BIN|FILE_READ);
  complex_value3=FileReadComplexDouble(file_handle);
  complexf_value3=FileReadComplexFloat(file_handle);
  FileClose(file_handle);
  Print("complex_value3=",complex_value3);
  Print("complexf_value3=",complexf_value3);
 }

エキスパートログでの出力

  written 17 bytes
  written 27 bytes
  complex_value2=(1.012345,0.0001)
  complexf_value2=(0.0067799999,0.0049999999)
 
  written 16 bytes
  written 8 bytes
  complex_value3=(1.012345,0.0001)
  complexf_value3=(0.0067799999,0.0049999999)

参照

複素数 (complex, complexf), FileRead, FileReadDouble, FileWriteComplexDouble