Funkcje konwersji:   StringFormat()

Funkcja string StringFormat() formatuje argumenty i zwraca tekst. Zasady formatowania są takie same jak i dla funkcji PrintFormat() . Więcej informacji można znaleźć w specyfikacji MQL4.


Przykład 1

#property strict
void OnStart()
  {
//--- sformatować wartości tekstowe string za pomocą specyfikatora %s
   string Server  = AccountInfoString(ACCOUNT_SERVER);  // nazwa adresu serwera
   string Company = AccountInfoString(ACCOUNT_COMPANY); // nazwa firmy brokerskiej
   string Result  = StringFormat("Serwer = %s. Broker = %s",Server,Company);

   Print(Result);
  }

Rys. 1. Przykład stosowania funkcji StringFormat().


Przykład 2

#property strict
void OnStart()
  {
//--- sformatować liczby całkowite int za pomocą specyfikatora %d
   int    Precision = (int)SymbolInfoInteger(_Symbol,SYMBOL_DIGITS); // dokładność notowania
   int    Spread    = (int)SymbolInfoInteger(_Symbol,SYMBOL_SPREAD); // spread
   string Result    = StringFormat("Dokładność notowania = %d cyfr po kropce. Spread = %d punktów",
                                   Precision,Spread);

   Print(Result);
  }

Rys. 2. Przykład stosowania funkcji StringFormat().


Przykład 3

#property strict
void OnStart()
  {
   double HighCandle = High[1];  // cena high świecy z indeksem 1
   double LowCandle  = Low[1];   // cena low świecy z indeksem 1
   double MaxVolume  = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX); // maksymalny wolumen transakcji

//--- sformatować liczby zmiennoprzecinkowe double z domyślną dokładnością za pomocą specyfikatora %f
   string Result_1 = StringFormat("High świecy 1 = %f. Low świecy 1 = %f",HighCandle,LowCandle);
   Print("1) Domyślna dokładność (%f): ",Result_1);

//--- sformatować liczby zmiennoprzecinkowe double z dokładnością 5 za pomocą specyfikatora %.5f
   string Result_2 = StringFormat("High świecy 1 = %.5f. Low świecy 1 = %.5f",HighCandle,LowCandle);
   Print("2) Dokładność 5 (%.5f): ",Result_2);

//--- sformatować liczbę zmiennoprzecinkową double z dokładnością 2 za pomocą specyfikatora %.2f
   string Result_3 = StringFormat("Max wolumen = %.2f",MaxVolume);
   Print("3) Dokładność 2 (%.2f:) ",Result_3);

//--- sformatować liczbę zmiennoprzecinkową double bez części dziesiętnej za pomocą specyfikatora %.f
   string Result_4 = StringFormat("Max wolumen = %.f",MaxVolume);
   Print("4) Bez części dziesiętnej: ",Result_4);

//--- sformatować liczby zmiennoprzecinkowe double do postaci kompaktowej za pomocą specyfikatora %g
   string Result_5 = StringFormat("High świecy 1 = %g. Low świecy 1 = %g",HighCandle,LowCandle);
   Print("5) Postać kompaktowa (%g): ",Result_5);

   string Result_6 = StringFormat("Max wolumen = %.g",MaxVolume);
   Print("6) Postać kompaktowa (%g): ",Result_6);
  }

Rys. 3. Przykłady stosowania funkcji StringFormat().