ブログトップ > スポンサー広告 > [Code] 文字列を配列に格納する

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ブログトップ > MT4Code > [Code] 文字列を配列に格納する

[Code] 文字列を配列に格納する

ArrayResize;最初の次元の新しいサイズを設定します。もし、正常に実行されれば、配列のサイズを変更した後、含まれるすべての要素の数を返します。それ以外の場合は、-1 を返し、配列はサイズ変更されません。

-----------------------------------------------
[問題] 文字列「1234#5678#9876#5432」から区切り文字「#」を手がかりにして、部分文字列の「1234」「5678」「9876」「5432」を抽出して、配列yArrayに格納する。
-----------------------------------------------
[方法] 抽出する文字列はその最初の位置と文字列の長さがわかればよい。その長さとは文字列の最初の位置から区切り文字までの長さである。2番目以降の抽出する文字列(「5678」「9876」「5432」)の最初の位置は区切り文字+1になる
-----------------------------------------------

string text = "1234#5678#9876#5432"; //分解する文字列

int yArray[]; //文字列を格納する配列(格納する文字列は最終的に整数として格納する)
string substr; //抽出した文字列を格納する変数

int count = ArraySize(yArray);
if(count>0) return(0); //配列に無限に格納されないようにするため配列に要素が含まれていれば、それ以上実行しない

string match = "#"; //区切り文字
int start = 0; //検索を開始する、文字列内の位置
int index; //検索した部分文字列の開始位置
int length; //抽出する部分文字列の長さ

while(index !=-1) {
index = StringFind(text, match, start);
length = index-start;
substr = StringSubstr(text, start, length);
start = index+1;
if(substr != ""){
ArrayResize(yArray,ArraySize(yArray)+1);//配列のサイズを変更。配列の要素数を1つ加える
yArray[ArraySize(yArray)-1] = StrToInteger(substr); //文字列を整数に変換して配列の要素として代入
}
}

count = ArraySize(yArray);
Print("count: ", count);

for(int i=0; i<count; i++)
{
Print("yArray[", i, "]: ", yArray[i], "\n"); //配列の要素をプリント
}
スポンサーサイト

コメント

コメントの投稿
  • URL
  • コメント
  • パスワード
  • 秘密
  • 管理者にだけ表示を許可する

トラックバック

トラックバックURL: http://atslab.blog135.fc2.com/tb.php/48-c8d3b2e3

profile

atslab

Author:atslab
ATSLABへようこそ!FXトレードに関する情報を発信しています。
著者はプログラマー、FXトレーダーです。情報環境学という大学の研究機関で研究員を経て独立。FXは裁量トレード、システムトレード、コンピュータによる自動売買をそれぞれ併用して取り引きしています。これまで取引ツールをいくつもプログラミングしてきました。その中から取引に有効なツールを提供していきたいと考えています。

entry
comment
trackback
archive
category
form
rss
link
qrcode
QR
copyright
Author by atslab

Designed by マンゴスチンw

ATSLAB(FX初心者が読んで面白い!外国為替の自動売買システム研究所)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。