Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 240

 
Hallo zusammen. Ich kann nicht herausfinden, wie ich eine Zeichenkette (z.B. "Hallo zusammen") in eine Double-Zahl und umgekehrt eine Double-Zahl in eine Zeichenkette umwandeln kann. Vielleicht hat jemand einen fertigen Code?
 

Es war eine einfache Sache zu tun:

StringToDouble()
DoubleToString()
            
 
Aleksei Stepanenko:

Das Problem ist, dass es sich nicht um eine Zahl handelt, die ich als Text übersetzen muss (z. B. "345,45"):

Das Problem ist, dass ich nicht eine als Text eingegebene Zahl (z. B. "345,45") in Double umwandeln muss, sondern jeden Text, der nicht mit der Zahl selbst zusammenhängt. Bei der Anwendung von z.B.

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

Umgekehrt ist es dasselbe. Sie können natürlich jedes Zeichen der Zeichenkette in einer Schleife durchlaufen, indem Sie

StringGetChar();

und setzen ihre Codes in Double, aber wie entschlüsselt/empfängt man eine Zeichenkette von Double?


Gibt es noch andere Möglichkeiten?

 
Yan Barmin:

Das Problem ist, dass ich nicht eine als Text eingegebene Zahl (z. B. "345,45") in Double umwandeln muss, sondern einen beliebigen Text, der nicht mit der Zahl selbst zusammenhängt. Bei der Anwendung von z.B.

Umgekehrt ist es dasselbe. Gibt es noch andere Varianten?

StringToCharArray

 
Yan Barmin:

Gibt es also noch andere Möglichkeiten?

Ich verstehe den Sinn dieser Umwandlung nicht, wollen Sie eine Hashsumme erhalten? Es wird Probleme mit der umgekehrten Entschlüsselung geben. Wenn die Konvertierung die Menge der Informationen verringert, gehen sie unwiederbringlich verloren.

Welche Zahl wollen Sie hier sehen:

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

Ich verstehe den Sinn dieser Umrechnung nicht, wollen Sie eine Hashsumme? Es wird ein Problem mit der umgekehrten Entschlüsselung geben. Wenn durch die Konvertierung die Informationsmenge verringert wird, geht sie unwiederbringlich verloren.

Welche Zahl möchten Sie hier sehen?

Wahrscheinlich das hier:

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

}
 

Das ist lustig ;)

Sie können so im Forum korrespondieren. Geschichte, Politik, all die schwierigen Themen, und niemand schickt Sie auf die Straße. Zweier, Dreier, Einser...

 
19423224222423523223344322342242342242553224523824023824822425532232228229255322272382262382402322422523224623224424022423623233
 
Jetzt müssen Sie einen Decoder schreiben, um sie zu lesen.
 
Aleksei Stepanenko:
Nun, jetzt müssen Sie einen Decoder schreiben, um sie zu lesen.

Nun, wenn es eine Zeichenkette ist, dann brauchen Sie zusätzlichen Code, aber ein Array direkt

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