ArrayPrint
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
*/