|
早速のアドバイスありがとうございました。
やってみたのですが、相変わらずエラーが出て確認ができません。
エラー箇所 paste で文法エラーになります。
paste以前はエラーは出ないのですが、目的の実行ができているのかは
不明です。
よろしくお願い致します。
//---------------
disabledraw;
gofiletop;
while (code != -1) {
golineend2; // 行末へ移動
moveto x-11,y; // 11個左へカーソル移動
label1:
$letter=gettext(x,y,x-1,y); //
if ($letter!="/") goto label2; //
#L=#L+1; // 文字数数え
goto label1; //
label2:
moveto x+10,y; // 名称の頭にカーソル移動
beginsel; // 範囲選択開始
label3:
if (#M==#L-10) goto label4; // 名称の最後尾になったら
right; // 右へカーソル移動
#M=#M+1; // 文字数数え
goto label3;
label4:
endsel; // 範囲選択終了
copy2; // クリップボードにコピー
golineend2; // 行末へ移動
moveto x+4,y; // 左へ4個カーソル移動
paste; // クリップボードから貼付け
clearcliphist; // クリップボード履歴消去
down; // 次行
#L=0; // Lの初期化
#M=0; // Mの初期化
}
endmacro;
//---------------
> KOBO さん今日は、ひろです。
>> $letter="??"; // カーソル位置の文字取込
> gettext を使ってみてください。例えば、
>beginsel;
>$letter = gettext( x, y, x + 1, y );
>とします。ただし今回の場合は、文字列というよりカーソル位置の文字を判
>定したいだけのようなので、
>if( code != ascii( "/" ) )
>という手も有ります。( ascii( "/" ) は 0x2F なので、直接総書いた方が速度
>は早い)
>
>> if $letter<>"/" then goto label2; // とBASIC調に書きたい
>if ($letter != "/" )goto label2;
>となりますが、秀丸のマクロは C 言語ライクですから、スパゲッティ・コー
>ドになりがちな、goto 文はあまり使わない方がよいと思います。今回の場合、
>「{」と「}」によるブロックや、while 文を使うと良いでしょう。
|
|