ArrayPrint

単純型または単純な構造体の配列を操作ログに出力します。

void  ArrayPrint(
  const void&  array[],            // 出力された配列
  uint          digits=_Digits,      // 小数点以下の桁数
  const string  separator=NULL,      // 構造体フィールド値のセパレーター
  ulong        start=0,            // 最初に出力された要素のインデックス
  ulong         count=WHOLE_ARRAY,   // 出力された要素の数
  ulong         flags=ARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_LIMIT|ARRAYPRINT_ALIGN    
  );

パラメータ

array[]

[in]  単純型または単純な構造体の配列。

digits=_Digits

[in]  実数型の小数点以下の桁数。デフォルト値は_Digits.。

separator=NULL

[in]  構造体フィールド値のセパレーター。デフォルト値のNULLは空のラインを意味します。この場合スペースが区切り文字として使用されます。

start=0

[in]  最初に出力された配列要素のインデックス。デフォルトではゼロインデックスから出力されます。

count=WHOLE_ARRAY

[in]  出力される配列要素の数。デフォルトでは配列全体が表示されます(count=WHOLE_ARRAY)。

flags=ARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_LIMIT|ARRAYPRINT_ALIGN

[in]  出力モードを設定するフラグの組み合わせ。デフォルトではすべてのフラグが有効です。

    • ARRAYPRINT_HEADER – 構造体配列のヘッダを出力します。
    • ARRAYPRINT_INDEX – インデックスを左側に出力します。
    • ARRAYPRINT_LIMIT – 配列の最初の100および最後の100要素のみを出力します。大きな配列の一部だけを出力したい場合に使用します。
    • ARRAYPRINT_ALIGN – 出力された値の位置合わせを可能にします - 数は右、ラインは左整列されます。
    • ARRAYPRINT_DATE – datetimeを出力するときはdd.mm.yyyy形式を使います。
    • ARRAYPRINT_MINUTES – datetimeを出力するときはHH:MM形式を使います。
    • ARRAYPRINT_SECONDS – datetimeを出力するときはHH:MM:SS形式を使います。

戻り値

いいえ

注意事項

ArrayPrint() は構造体配列のフィールドを操作ログに出力するものではありません。配列とオブジェクトポインタフィールドは抜かされます。これらの列は、単により便利なプレゼンテーションのために出力されません。すべての構造体のフィールドを出力する必要がある場合は、希望の書式を使用して独自のマス出力関数を記述する必要があります。

例:

//--- 最後の10バーの値を出力する
  MqlRates rates[];
  if(CopyRates(_Symbol,_Period,1,10,rates))
    {
    ArrayPrint(rates);
    Print("Check\n[time]\t[open]\t[high]\t[low]\t[close]\t[tick_volume]\t[spread]\t[real_volume]");
    for(int i=0;i<10;i++)
       {
        PrintFormat("[%d]\t%s\t%G\t%G\t%G\t%G\t%G\t%G\t%I64d\t",i,
        TimeToString(rates[i].time,TIME_DATE|TIME_MINUTES|TIME_SECONDS),
        rates[i].open,rates[i].high,rates[i].low,rates[i].close,
        rates[i].tick_volume,rates[i].spread,rates[i].real_volume);
       }
    }
  else
    PrintFormat("CopyRates failed, error code=%d",GetLastError());
//--- 出力例
/*
                   [time]  [open]  [high]   [low] [close] [tick_volume] [spread] [real_volume]
  [0] 2016.11.09 04:00:00 1.11242 1.12314 1.11187 1.12295         18110       10   17300175000
  [1] 2016.11.09 05:00:00 1.12296 1.12825 1.11930 1.12747         17829        9   15632176000
  [2] 2016.11.09 06:00:00 1.12747 1.12991 1.12586 1.12744         13458       10    9593492000
  [3] 2016.11.09 07:00:00 1.12743 1.12763 1.11988 1.12194         15362        9   12352245000
  [4] 2016.11.09 08:00:00 1.12194 1.12262 1.11058 1.11172         16833        9   12961333000
  [5] 2016.11.09 09:00:00 1.11173 1.11348 1.10803 1.11052         15933        8   10720384000
  [6] 2016.11.09 10:00:00 1.11052 1.11065 1.10289 1.10528         11888        9    8084811000
  [7] 2016.11.09 11:00:00 1.10512 1.11041 1.10472 1.10915          7284       10    5087113000
  [8] 2016.11.09 12:00:00 1.10915 1.11079 1.10892 1.10904          8710        9    6769629000
  [9] 2016.11.09 13:00:00 1.10904 1.10913 1.10223 1.10263          8956        7    7192138000
  確認
  [time] [open] [high] [low] [close] [tick_volume] [spread] [real_volume]
  [0] 2016.11.09 04:00:00 1.11242 1.12314 1.11187 1.12295 18110 10 17300175000
  [1] 2016.11.09 05:00:00 1.12296 1.12825 1.1193 1.12747 17829 9 15632176000
  [2] 2016.11.09 06:00:00 1.12747 1.12991 1.12586 1.12744 13458 10 9593492000
  [3] 2016.11.09 07:00:00 1.12743 1.12763 1.11988 1.12194 15362 9 12352245000
  [4] 2016.11.09 08:00:00 1.12194 1.12262 1.11058 1.11172 16833 9 12961333000
  [5] 2016.11.09 09:00:00 1.11173 1.11348 1.10803 1.11052 15933 8 10720384000
  [6] 2016.11.09 10:00:00 1.11052 1.11065 1.10289 1.10528 11888 9 8084811000
  [7] 2016.11.09 11:00:00 1.10512 1.11041 1.10472 1.10915 7284 10 5087113000
  [8] 2016.11.09 12:00:00 1.10915 1.11079 1.10892 1.10904 8710 9 6769629000
  [9] 2016.11.09 13:00:00 1.10904 1.10913 1.10223 1.10263 8956 7 7192138000
*/

参照

FileSaveFileLoad