路路发智能交易研发中心

 找回密码
 立即注册
查看: 2746|回复: 0

MT4智能交易编程教程-字符常量

[复制链接]

管理员

MT4软件工程师

Rank: 9Rank: 9Rank: 9

积分
6521
帖子
2771
主题
2761
QQ
发表于 2014-3-26 21:24:31 | 显示全部楼层 |阅读模式
MT4智能交易编程教程-字符常量
字符常量
字符作为MQL5中的字符串要素是统一字符设置的指数。它们是可以转换成整数的十六进制值,可以像加减法定理一样进行整数操作 。
引号里的任何单一特质和十六进制的 ASCII 代码'\x10' 都能当做字符常量无符号短整型 型,例如,0型记录的数值是30,相当于在图标字符中代表调整归零。
示例:
  1. void OnStart()
  2.   {
  3. //--- 定义字符常量
  4.    int symbol_0='0';
  5.    int symbol_9=symbol_0+9; // 获得符号 '9'
  6. //--- 输出常量值
  7.    printf("In a decimal form: symbol_0 = %d,  symbol_9 = %d",symbol_0,symbol_9);
  8.    printf("In a hexadecimal form: symbol_0 = 0x%x,  symbol_9 = 0x%x",symbol_0,symbol_9);
  9. //--- 输入常量成字符串
  10.    string test="";
  11.    StringSetCharacter(test,0,symbol_0);
  12.    StringSetCharacter(test,1,symbol_9);
  13. //--- 这是字符串中看起来像的东西
  14.    Print(test);
  15.   }
复制代码
在程序源文本与常量型进行处理时,反斜线符号是编译器的控制字符,,一些符号,例如,单引号('),双引号("),反斜杠(\)和控制字符都能被当做以反斜杠(\)为起点的符号的集合,如下表:
字符名称
助记码或者图像
MQL5中的记录
数值
新线 (换行)
LF
'\n'
13
水平制表符
HT
'\t'
9
回车
CR
'\r'
10
反斜杠
\
'\\'
92
单引号
'
'\''
39
双引号
"
'\"'
34
十六进制代码
hhhh
'\xhhhh'
1 to 4 十六进制字符
十进制代码
d
'\d'
从 0 到 65535的十进制代码
如果反斜杠后面跟着另一种字符而不是以上描述的类型,结果是未知的。
示例
  1. void OnStart()
  2.   {
  3. //--- 声明字符常量
  4.    int a='A';
  5.    int b='综上所述,常量(或变量)字符的值是字符表中的指标,指标存在整型,能以不同的方式输出。[code]void OnStart()
  6.   {
  7. //---
  8.    int a=0xAE;     // 代码 ® 符合于 the '\xAE' 文字
  9.    int b=0x24;     // 代码 $ 符合于 the '\x24' 文字
  10.    int c=0xA9;     // 代码 © 符合于 to the '\xA9' 文字
  11.    int d=0x263A;   // 代码 ☺ 符合于 the '\x263A' 文字
  12. //--- 显示值
  13.    Print(a,b,c,d);
  14. //--- 添加字符到字符串
  15.    string test="";
  16.    StringSetCharacter(test,0,a);
  17.    Print(test);
  18. //--- 成串的替换字符
  19.    StringSetCharacter(test,0,b);
  20.    Print(test);
  21. //--- 成串的替换字符
  22.    StringSetCharacter(test,0,c);
  23.    Print(test);
  24. //--- 成串的替换字符
  25.    StringSetCharacter(test,0,d);
  26.    Print(test);
  27. //--- 合适的代码
  28.    int a1=0x2660;
  29.    int b1=0x2661;
  30.    int c1=0x2662;
  31.    int d1=0x2663;
  32. //--- 添加黑桃字符
  33.    StringSetCharacter(test,1,a1);
  34.    Print(test);
  35. //--- 添加红心字符
  36.    StringSetCharacter(test,2,b1);
  37.    Print(test);
  38. //--- 添加方片字符
  39.    StringSetCharacter(test,3,c1);
  40.    Print(test);
  41. //--- 添加梅花字符
  42.    StringSetCharacter(test,4,d1);
  43.    Print(test);
  44. //--- 成串的字符文字示例
  45.    test="Queen\x2660Ace\x2662";
  46.    printf("%s",test);
  47.   }
复制代码

字符型的内部表示法是 无符号短整型 ,字符常量能够接受从0到65535的值。


;
   int c='©';      // 代码 0xA9
   int d='\xAE';   // 符号代码 ®
//--- 输出打印常量
   Print(a,b,c,d);
//--- 添加字符到字符串
   string test="";
   StringSetCharacter(test,0,a);
   Print(test);
//--- 成串的替换字符
   StringSetCharacter(test,0,b);
   Print(test);
//--- 成串的替换字符
   StringSetCharacter(test,0,c);
   Print(test);
//--- 成串的替换字符
   StringSetCharacter(test,0,d);
   Print(test);
//--- 字符表示为数字
   int a1=65;
   int b1=36;
   int c1=169;
   int d1=174;
//--- 添加字符到字符串
   StringSetCharacter(test,1,a1);
   Print(test);
//--- 添加字符到字符串
   StringSetCharacter(test,1,b1);
   Print(test);
//--- 添加字符到字符串
   StringSetCharacter(test,1,c1);
   Print(test);
//--- 添加字符到字符串
   StringSetCharacter(test,1,d1);
   Print(test);
  }
[/code]综上所述,常量(或变量)字符的值是字符表中的指标,指标存在整型,能以不同的方式输出。
  1. void OnStart()
  2.   {
  3. //---
  4.    int a=0xAE;     // 代码 ® 符合于 the '\xAE' 文字
  5.    int b=0x24;     // 代码 $ 符合于 the '\x24' 文字
  6.    int c=0xA9;     // 代码 © 符合于 to the '\xA9' 文字
  7.    int d=0x263A;   // 代码 ☺ 符合于 the '\x263A' 文字
  8. //--- 显示值
  9.    Print(a,b,c,d);
  10. //--- 添加字符到字符串
  11.    string test="";
  12.    StringSetCharacter(test,0,a);
  13.    Print(test);
  14. //--- 成串的替换字符
  15.    StringSetCharacter(test,0,b);
  16.    Print(test);
  17. //--- 成串的替换字符
  18.    StringSetCharacter(test,0,c);
  19.    Print(test);
  20. //--- 成串的替换字符
  21.    StringSetCharacter(test,0,d);
  22.    Print(test);
  23. //--- 合适的代码
  24.    int a1=0x2660;
  25.    int b1=0x2661;
  26.    int c1=0x2662;
  27.    int d1=0x2663;
  28. //--- 添加黑桃字符
  29.    StringSetCharacter(test,1,a1);
  30.    Print(test);
  31. //--- 添加红心字符
  32.    StringSetCharacter(test,2,b1);
  33.    Print(test);
  34. //--- 添加方片字符
  35.    StringSetCharacter(test,3,c1);
  36.    Print(test);
  37. //--- 添加梅花字符
  38.    StringSetCharacter(test,4,d1);
  39.    Print(test);
  40. //--- 成串的字符文字示例
  41.    test="Queen\x2660Ace\x2662";
  42.    printf("%s",test);
  43.   }
复制代码

字符型的内部表示法是 无符号短整型 ,字符常量能够接受从0到65535的值。




外汇智能交易,成就财富梦想!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


MT4编程培训|EA定制开发|QQ在线咨询|路路发智能交易研发中心

GMT+8, 2024-12-22 22:49 , Processed in 0.150592 second(s), 26 queries .

© 2009-2022 520EA.com EA668.com

快速回复 返回顶部 返回列表