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]  最初打印数组元素的索引。索引默认从0开始。 

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格式打印时间

返回值

No

注意

ArrayPrint() 不会将全部结构数组字段打印到日志 – 跳过数组和对象指针字段。之所以没有打印这些列只是为了更方便的展示。如果您需要打印全部结构字段,您需要按照所需的格式编写您自己的print函数。

例如:

//--- 打印最后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

*/

另见

FileSave, FileLoad