【MQL5】StringFormat関数について

MQL5リファレンス
スポンサーリンク
スポンサーリンク

StringFormat関数の働き・役割

StringFormat関数は、指定された形式に従って文字列をフォーマットし、新しい文字列を返す関数です。StringFormat関数は、複数の引数を受け取り、それらを整形して1つの文字列としてまとめるのに役立ちます。例えば、数値や文字列を特定のフォーマットで表示したい場合に非常に便利です。

StringFormat関数の引数について

StringFormat関数引数構成は次の通りです。

string StringFormat(const string format, ...)

第1引数format
種類:文字列
説明:フォーマット指定子を含む文字列です。例えば、「%d」は整数、「%s」は文字列を表します。

フォーマット指定子及びそれに関連する規則はPrintFormat関数と同じです。詳細は↓の記事をご参照ください。

第2引数以降:可変引数
種類:任意
説明:フォーマット指定子に対応する値です。例えば、整数や文字列などを指定します。

StringFormat関数の戻り値について

StringFormat関数は、フォーマットされた新しい文字列を返します。戻り値string型です。

StringFormat関数を使う際の注意点

StringFormat関数を使用する際には、以下の点に注意する必要があります。

  1. フォーマット指定子引数の数や型が一致していることを確認する必要があります。不一致があるとエラーや予期しない動作の原因となります。
  2. フォーマット指定子の使い方を理解し、適切に使用することが重要です。特に数値の形式や小数点以下の桁数などに注意が必要です。

StringFormat関数を使ったサンプルコード

StringFormat関数を使ったサンプルコードは以下の通りです。

// OnStart関数はスクリプトの実行が開始されたときに自動的に呼び出されます
void OnStart() 
{
    // 整数、浮動小数点数、文字列を用意します
    int integerValue = 42;
    double doubleValue = 3.14159;
    string stringValue = "MQL5";

    // StringFormat関数を使用して文字列をフォーマットします
    string formattedString = StringFormat("整数: %d, 浮動小数点数: %.2f, 文字列: %s", integerValue, doubleValue, stringValue);

    // フォーマットされた文字列をエキスパートログに出力します
    Print(formattedString);
}

サンプルコードに使われた関数や文法要素の簡単な解説

  1. OnStart関数は、スクリプトが実行されるときに最初に呼び出される関数です。初期設定やメインの処理をここに記述します。
  2. int型は、整数を扱うデータ型です。サンプルコードではintegerValueという変数に42を代入しています。
  3. double型は、浮動小数点数を扱うデータ型です。サンプルコードではdoubleValueという変数に3.14159を代入しています。
  4. string型は、文字列を扱うデータ型です。サンプルコードではstringValueという変数に”MQL5″を代入しています。
  5. StringFormat関数は、指定されたフォーマットに従って複数の引数を整形し、1つの文字列としてまとめます。サンプルコードでは整数、浮動小数点数、文字列を含むフォーマットされた文字列を生成しています。
  6. Print関数 は、引数に指定された文字列をエキスパートログに出力する関数です。サンプルコードではフォーマットされた文字列を出力しています。

PrintFormat関数との違いについて

PrintFormat関数も、指定された形式に従って文字列をフォーマットする点ではStringFormat関数と似ていますが、重要な違いがあります。

PrintFormat関数はフォーマットされた文字列を生成し、そのままエキスパートログに出力するため、生成された文字列変数に保存することはできません。
一方、StringFormat関数はフォーマットされた文字列を返すので、その結果を変数に格納したり、他の処理に利用することが可能です。

この違いにより、特定のフォーマットで文字列を整形し、その結果を複数回使用したい場合には、StringFormat関数を使用することが適しています。エキスパートログへの即時出力が目的の場合は、PrintFormat関数が便利です。

タイトルとURLをコピーしました