初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 240

 
皆さん、こんにちは。文字列(例えば "hello all")を数値doubleに、逆にdoubleを文字列に変換する方法がわからないのですが。もしかしたら、誰かが既成のコードを持っているかもしれません。
 

簡単なことだったんです。

StringToDouble()
DoubleToString()
            
 
Aleksei Stepanenko:

そして、パズルは簡単に解けました。

問題は、Doubleに変換する必要があるのは、テキストとして入力された数字(例えば「345.45」)ではなく、数字そのものに関係のないテキストなのです。などを適用する場合。

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

それは逆も同じです。もちろん、文字列の各文字をループすることもできます。

StringGetChar()。

を作成し、そのコードをDoubleに格納するのですが、Doubleから文字列を復号/受信する方法は?


他の選択肢は?

 
Yan Barmin:

問題は、Doubleに変換する必要があるのは、テキストとして入力された数字(例えば「345.45」)ではなく、数字そのものに関係のないテキストであることです。などを適用する場合。

それは逆も同じです。その他のバリエーションは?

文字列から文字列への変換(StringToCharArray

 
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

}
 

それは面白いですね ;)

フォーラムではそのように対応することができます。歴史、政治、難しいことは全部、誰も禁止に送らない。2人、3人、1人...

 
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));