[HMM0082A]
●カーソルのある行の内容を文字列型変数に取り込む方法
- カーソルのある行の内容を、文字列型変数に取り込む方法はありませんか?
方法は複数あります。
行選択を行い、選択範囲を取り込む
selectline; $line = gettext(seltopx, seltopy, selendx, selendy); message $line;
gettext2関数と、キーワードを組み合わせて取り込む
$line = gettext2(0,lineno,linelen2, lineno); message $line;
- [解説]
(1)のマクロは、行選択を行い、選択範囲の文字列を取り込んでいます。 行選択の副作用でカーソルがマクロ実行前後で、違う位置に移動してしまう場合があります。
(2)のマクロは
- lineno キーワード
- linelen2 キーワード
を使用し、範囲選択なしで取り込んでいます。
行の先頭は、"0"と決まっているので直接記述し、 行の長さは linelen2 キーワード、行数は、lineno キーワード を使い範囲を求め取得しています。。
結果は同じですが、カーソルが移動する/しないの違いがあります。
- [補足]
- (2)は、gettext関数でも問題ないように見えますが、 折り返しがある場合や、タブコードがある場合、 gettext関数では正常に内容を(簡単には)取得できません。