初学者的问题 MQL4 MT4 MetaTrader 4 - 页 240

 
大家好。我不知道如何将字符串(比方说 "hello all")转换成双数,反之亦然,从双数转换成字符串?也许有人有一些现成的代码?
 

这是一件简单的事情。

StringToDouble()
DoubleToString()
            
 
Aleksei Stepanenko:

而且这个谜题很容易解决。

问题是,我需要转换的不是作为文本输入的数字(如 "345.45"),而是与数字本身无关的任何文本。当应用例如

StringToDouble("Исходный_текст") на выходе будут нули.

反之亦然。当然,你可以用以下方法循环浏览字符串的每个字符

StringGetChar()

并将其代码放入Double中,但如何从Double中解密/接收字符串?


那么有什么其他选择吗?

 
Yan Barmin:

问题是,我需要转换的不是作为文本输入的数字(如 "345.45"),而是与数字本身无关的任何文本。当应用例如

反之亦然。有其他的变体吗?

字符串到字符数组

 
Yan Barmin:

那么还有其他的选择吗?

我不明白这种转换的意义,你想得到一个哈希和吗?在反向解密方面会有问题。如果转换减少了信息量,那么你就会无可挽回地失去它。

你想在这里看到什么数字。

StringToDouble("Исходный_текст")
 
Aleksei Stepanenko:

我不明白这种转换的意义,你想要一个哈希和吗?在反向解密方面会有问题。如果转换减少了信息量,那么你就会无可挽回地失去它。

你想在这里看到什么数字?

可能是这个。

void OnStart()
{
   uchar scr[];
   string InputText="Исходный_текст";
   string Res="";
   StringToCharArray(InputText,scr,0,StringLen(InputText));
    for(int i=0; i<ArraySize(scr); i++)
      Res+=scr[i];
    Print(Res); // 20024124523822823725123395242229234241242

}
 

这很有趣;)

你可以在论坛上进行这样的通信。历史,政治,所有的硬东西,没有人会把你送到禁令。二、三、一......。

 
19423224222423523223344322342242342242553224523824023824822425532232228229255322272382262382402322422523224623224424022423623233
 
现在你必须写一个解码器来读取它。
 
Aleksei Stepanenko:
好吧,你现在必须写一个解码器来读取它。

好吧,如果是字符串,那么你需要额外的代码,但如果是数组直接

   uchar scr[];
   string InputText="Исходный_текст";
   string Res="";
   StringToCharArray(InputText,scr,0,StringLen(InputText));
    for(int i=0; i<ArraySize(scr); i++)
      Res+=scr[i];
  //  Print(Res);
  Print(CharArrayToString(scr));