StringGetChar和CharToStr不互换

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (9)

设置字符串后,我尝试从字符串中获取一个特殊字符(ASCII>127),但是输出正在改变,因为CharToStr接受uchar,StringGetChar返回ushort。

这就是我尝试过的:

  uchar uch = 234;

  Print(uch);    //Output:  234
  string a = CharToStr(uch);

  uch = (uchar)StringGetChar(a,0);
  Print(uch);    //Output:   218

我怎样才能克服这个问题呢?

提问于
用户回答回答于

我想提出我自己的答案。而不是处理uchar <==> ushort,由于MQL 4中的持续错误,这是有问题的,您可以这样对其进行重新编码:

//let's say it can be any number, unknown in compilation time
string msg = "234My message";
//then somewhere in the code when you want to display the message:
uchar arrow = (uchar)StringToInteger(StringSubstr(msg,0,3));
//and act upon this arrow, now that you have the correct code:
if(arrow==234) { ... }
else if (arrow==233)  { ... }

扫码关注云+社区

领取腾讯云代金券