秀丸マクロ: 選択した複数行を、改行で配列に分割するプログラム
選択した複数行を、改行で分割
選択した複数行を改行で分割し、配列に格納するプログラムです。
取得した配列をループで回して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" とする必要がありました。