秀丸マクロ: 選択した複数行を、改行で配列に分割するプログラム

選択した複数行を、改行で分割

選択した複数行を改行で分割し、配列に格納するプログラムです。
取得した配列をループで回して1行ずつ処理します。

複数行のデータを1行ずつ処理したいときのテンプレとして使えます。

秀丸マクロ プログラム

コードは次の通りです。下で簡単な解説をしています。

秀丸マクロ
// 範囲選択中でない場合、マクロを終了する
if (selecting == 0) endmacro;

// 選択範囲の文字列を取得(範囲選択を維持しない)
$str = gettext(seltopx,seltopy,selendx,selendy);

// 分割
#num = split($arr, $str, "\r\n");

#i = 0;
while(#i <= #num){
	
	// 空行は飛ばす
	if ($arr[#i] == "") {
		#i = #i + 1;
		continue;
	}
	
	// ここに行いたい処理を記述
	message $arr[#i];
		
	#i = #i + 1;
}

解説

split()関数を使って改行で分割しています。
通常のプログラミング言語なら配列を for文で回すのですが、 秀丸マクロには for文はないので while文を使ってループを回します。 アレンジする際はループカウンタの管理に気を付けてください。

注意点は、区切り文字に "\r\n" を指定している点です。 環境によっては "\n" だけでも行けるかもしれませんが、 私の環境では "\r\n" とする必要がありました。

秀丸マクロ