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