文字列から文字を取り出す関数StringSubstr()(MQL4)

関数StringSubstr()

※取り出し元の文字列は取り出した後も変わりません。(取り出す前と同じ)

書式

string  StringSubstr(
	string  string_value,     //文字列
	int     start_pos,        //取り出しを開始する位置
	int     length   = 0      //取り出す長さ デフォルト値は0
	);

戻り値

	/*
	開始位置	  0 1 2 3 4
	文字列		" あいうえお "
	*/

StringSubstr(
	"あいうえお",     //文字列
	0,        //取り出しを開始する位置
	1      //取り出す長さ デフォルト値は0
	);
	//上記をPrint()関数で出力すると文字列の最初"あ"が0番目で取り出す長さが1なので"あ"【実行結果:あ】
実行結果:あ
	
	
StringSubstr(
	"あいうえお",     //文字列
	1,        //取り出しを開始する位置
	1      //取り出す長さ デフォルト値は0
	);
	//上記をPrint()関数で出力すると文字列の最初"あ"が0番目、1を指定しているので"い"で取り出す長さが1なので"い"【実行結果:い】
実行結果:い

	
StringSubstr(
	"あいうえお",     //文字列
	5,       //取り出しを開始する位置
	1     //取り出す長さ デフォルト値は0
	);
	//上記をPrint()関数で出力すると"お"は開始位置が4なので、何も返ってきません。【実行結果:】・・・何も返ってこない
実行結果:
	
StringSubstr(
	"あいうえお",     //文字列
	3,        //取り出しを開始する位置
	0     //取り出す長さ デフォルト値は0
	);
	//上記をPrint()関数で出力すると取り出す長さを0にすると取り出し位置から最後まで取り出します。【実行結果:えお】
実行結果:えお

サンプル

//通貨ペア名の後に余計な文字列がついている場合は下記のように正確に入力しないとダメです。
MarketInfo("USDJPY-cd",MODE_LOW); //今日の安値

//余計な文字列があるかわからない場合は下記のようにすれば取得できます。
string symbolEndStr = StringSubstr(Symbol(),6,0);
	
MarketInfo("USDJPY"+symbolEndStr,MODE_HIGH);  //今日の高値

関数Symbol(),関数MarketInfo()

引数詳細

第一引数:string_value【切り取りたい文字列】

第一引数には切り取りたい文字列を指定します。

第二引数:start_pos【切り取る文字列の開始位置】

第二引数には切り取る文字列の開始位置を指定します。
この引数の指定はindex指定ですので、0~です。
なので例えば
文字列の1番目から切り取りたい場合は0を指定します。
切り取りたい文字列の位置 – 1 =を指定します。

第三引数:length【切り取る長さ】

第三引数には切り取る長さを指定します。
初期値は0です。
0の場合は【切り取る文字列の開始位置】から文字列の最後まで切り取ります。
1以上を指定すると数字の数の文字列を第二引数で指定した【切り取る文字列の開始位置】から切り取ります。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする