範囲を指定してgettextがうまくいかないNo.05262
ゆきは さん 06/10/07 10:33
 
はじめまして。
最近、他の人が作ったマクロを使い始めたのですが、
「テンポラリファイルを作成して文字列をinsertし、
 それを範囲選択してgettextで取得する」マクロで、
範囲選択がうまくいきません。

openfile "/h " + hidemarudir + "\\test";
insert "12345678901234567890";
gofiletop;
beginsel;
golineend;
endsel;
message gettext(seltopx,seltopy,selendx,selendy);

このマクロを実行すると、
私の環境(ver5.18と6.03で確認しました)では「123456789」と表示されます。
selectallやselectlineで代替すると上手く動作しますが、
文字の一部分を切り出す処理がうまくいかずに困っています。

どなたか解決方法をご存じの方はいらっしゃいませんでしょうか?

よろしくお願いいたします。

[ ]
RE:05262 範囲を指定してgettextがうまくNo.05263
ゆきは さん 06/10/07 10:34
 
追記です。

openfile hidemarudir + "\\test";
のように、/hオプション無しでファイルを作成したときは
上手く動作するようです。

[ ]
RE:05262 範囲を指定してgettextがうまくNo.05264
h-tom さん 06/10/07 11:01
 

h-tom です。

>「テンポラリファイルを作成して文字列をinsertし、
> それを範囲選択してgettextで取得する」マクロで、
>範囲選択がうまくいきません。
<省 略>
>私の環境(ver5.18と6.03で確認しました)では「123456789」と表示されます。
>selectallやselectlineで代替すると上手く動作しますが、
>文字の一部分を切り出す処理がうまくいかずに困っています。

うちの環境では、問題なく動きますよ。

可能性としては、行の折り返し文字数の問題かな?
"golineend"は折り返しがあっても、その行の行末までしか移動しません。
その為、折り返し文字数が、10文字とか、少ない文字数になっていると、
今回のように、途中で切られてしまいます。
"golineend"を"golineend2"に変えて、うまく動くなら、折り返し文字数の
問題だと思いますよ。

ステルスを解除すると、うまくいくというのが、良くわかりませんけど?

[ ]
RE:05264 範囲を指定してgettextがうまくNo.05265
Iranoan さん 06/10/07 11:49
 
 ゆきはさん、h-tom さん今日は、Iranoan です。
> >「テンポラリファイルを作成して文字列をinsertし、
> > それを範囲選択してgettextで取得する」マクロで、
> >範囲選択がうまくいきません。
> <省 略>
> >私の環境(ver5.18と6.03で確認しました)では「123456789」と表示されます。
> >selectallやselectlineで代替すると上手く動作しますが、
> >文字の一部分を切り出す処理がうまくいかずに困っています。
>
> うちの環境では、問題なく動きますよ。
>
> 可能性としては、行の折り返し文字数の問題かな?
 折り返し文字数を多くしても再現しますね。
 どうやら「タブモード」が条件のようです。

[ ]
RE:05265 範囲を指定してgettextがうまくNo.05266
K'zawa さん 06/10/07 12:56
 
みなさんこんにちは、
K'zawa/ユーザーです。

> どうやら「タブモード」が条件のようです。

タブモードではないですが、
折り返し:ウインドウ幅に合わせる
にするとなりました。

[ ]
RE:05266 範囲を指定してgettextがうまくNo.05267
h-tom さん 06/10/07 13:34
 

h-tom です。

>> どうやら「タブモード」が条件のようです。
>
>タブモードではないですが、
>折り返し:ウインドウ幅に合わせる
>にするとなりました。
うちの環境だと、タブモード+「折り返し:ウインドウ幅に合わせる」で、
再現しました。
(Windows2000SP4+秀丸エディタ Ver.6.03)

回避方法としては、"golineend2"を使えばよさそうですね。

[ ]
RE:05267 解決しましたNo.05268
ゆきは さん 06/10/07 14:40
 
ゆきはです。
h-tomさん、Iranoanさん、K'zawaさん、
迅速で的確な回答、本当にありがとうございました。

指摘の通り、私の環境では
タブモード+「折り返し:ウインドウ幅に合わせる」
になっていました。

マクロ中のgolinetop、golineendをそれぞれ〜2に書き換えることで、
問題なく動作する様になりました。

[ ]