【MQL5】StringConcatenate関数について

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

StringConcatenate関数の働き・役割

StringConcatenate関数は、複数の値を連結して一つの文字列を作成し、その結果の文字列の長さを戻り値として返します。この関数は、文字列やその他のデータ型を連結する際に使用します。

StringConcatenate関数の引数について

StringConcatenate関数は以下の引数を取ります:

int StringConcatenate(
   string& string_var,  // 作成される文字列
   void argument1,      // 最初のパラメータ
   void argument2,      // 2番目のパラメータ
   ...                  // その他のパラメータ
);
  • string_var:結果の文字列が格納される文字列
  • argument1argument2、…:連結されるパラメータ。これらのパラメータは任意の基本データ型(整数、浮動小数点数、文字列など)であり、2から63個まで指定できます。

StringConcatenate関数の戻り値について

StringConcatenate関数は、連結された結果の文字列の長さを戻り値として返します。

StringConcatenate関数を使う際の注意点

  • 引数として渡されるパラメータは、2個以上、最大で63個まで指定できます。
  • StringConcatenate関数は、文字列を新しく作成する場合に使用されることを想定しており、同じ変数に対して繰り返し連結するのには適していません。
    そのため、新しいデータを同じ行に連結するためにStringConcatenate関数を繰り返し使用することは推奨されません。パフォーマンスが低下する可能性があります。

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

以下は、StringConcatenate関数を使ったサンプルコードです。

void OnStart()
{
    // 変数の宣言
    string text = "";
    string text1 = "StringConcatenate関数の使い方を示します。\n";
    string text2 = "これは2行目です。行末には改行コードが含まれています。\n";
    string text3 = "これは行番号 ";
    int num3 = 3;
    string text31 = " です。この番号は別のパラメータとして関数に渡されます。";
    string textN = "\n";
    string text4 = "これは4行目のテキストです。";
    
    // StringConcatenate関数を使用して文字列を連結
    int length = StringConcatenate(text, text1, text2, text3, num3, text31, textN, text4);
    
    // 結果をエキスパートログに出力
    Print(text, "\n連結された文字列の長さ = ", length);
}

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

改行コードについて

改行コードは、テキストに新しい行を開始するために使用される特殊な文字です。改行コードは、表示上では見えませんが、テキストエディタやプログラム内で行の区切りを示します。改行コードには以下の2種類があります:

  1. \n:ニューライン(LF, Line Feed)コード。UnixやLinux、macOSで主に使用されます。
  2. \r\n:キャリッジリターン+ニューライン(CR+LF)コード。Windowsで主に使用されます。

例えば、次のように使用します:

string text1 = "これは1行目です。\n";
string text2 = "これは2行目です。";

このコードでは、text1に改行コード(\n)が含まれているため、エキスパートログに出力されるときにtext2が新しい行に表示されます。

<参照>

StringAdd関数/StringBufferLen関数/StringCompare関数/StringLen関数/StringFill関数/StringInit関数/StringFind関数/StringGetCharacter関数/StringSetLength関数/StringReplace関数/StringReserve関数/StringSetCharacter関数/StringSplit関数/StringSubstr関数/StringToLower関数/StringToUpper関数/StringTrimLeft関数/StringTrimRight関数

コメント

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