Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 240

 
Olá a todos. Eu não consigo descobrir como converter cordas (vamos dizer "olá a todos") para o número duplo e vice-versa de duplo para cordas ? Talvez alguém tenha algum código pronto?
 

Foi uma coisa simples de se fazer:

StringToDouble()
DoubleToString()
            
 
Aleksei Stepanenko:

O problema é que não é um número que eu precise traduzir como texto (por exemplo, "345,45"):

O problema é que não é um número inserido como texto (por exemplo "345,45") que eu preciso converter para Duplo, mas qualquer texto não relacionado ao número em si. Ao aplicar, por exemplo

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

É o mesmo no sentido inverso. Você pode, é claro, percorrer cada caractere da cadeia usando

StringGetChar();

e colocar seus códigos no Double, mas como decifrar/receber cordel do Double ?


Então, alguma outra opção ?

 
Yan Barmin:

O problema é que não é um número inserido como texto (por exemplo "345,45") que eu preciso converter para Duplo, mas qualquer texto não relacionado ao número em si. Ao aplicar, por exemplo

É o mesmo no sentido inverso. Qualquer outra variante ?

StringToCharArray

 
Yan Barmin:

Então, há outras opções?

Não entendo o objetivo desta conversão, você quer obter uma soma de hash? Haverá um problema com a decriptação reversa. Se a conversão diminui a quantidade de informação, então você está perdendo-a irremediavelmente.

Que número você quer ver aqui:

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

Eu não entendo o objetivo desta conversão, você quer uma soma de hash? Haverá um problema com a decriptação reversa. Se a conversão diminui a quantidade de informação, então você está perdendo-a irremediavelmente.

Que número você quer ver aqui?

Provavelmente, este aqui:

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

}
 

Isso é engraçado ;)

Você pode se corresponder assim no fórum. História, política, todas as coisas difíceis, e ninguém o mandará para a proibição. Dois, três, um...

 
19423224222423523223344322342242342242553224523824023824822425532232228229255322272382262382402322422523224623224424022423623233
 
Agora você terá que escrever um decodificador para lê-lo.
 
Aleksei Stepanenko:
Bem, você terá que escrever um decodificador para lê-lo agora.

Bem, se é um fio, então você precisa de um código extra, mas uma matriz diretamente

   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));
Razão: