「Box選択領域を罫線で囲む」事についてNo.02206
yamasan さん 01/05/24 17:40
 
たびたび、お世話になっています。
yamadaです。また、お願いします。すみません。

Box選択領域を罫線で囲みたい場合のことです。

たとえば、
【処理前】
こんにちは、yamadaです。
お世話になっています。

【処理後】
┌────────────┐
│こんにちは、yamadaです。│
│お世話になっています。  │
└────────────┘

というように、罫線で囲んで強調したい場合なんですが、
現在は、
    http://hp.vector.co.jp/authors/VA015243/
から、MOSMAC10.LZH(boxwrite.mac)をダウンロードさせていただいて、
使っています。

boxwrite.macですと、Box選択して、移動し、整地し、・・・
というような手順を必要とします。
それに、改行が、折り返し文字数の位置に残るので、
メール文などでは、相手の設定によっては、
罫線がずれたりで、都合が悪いことがあったりします。

どうか、マクロを作成していただけないでしょうか?
できましたら、太字と細字が使い分けれると、嬉しいのです。
お願い申し上げます。

(なお、boxwrite.macの作者様には、
質問することを了解していただいておりますので、
作者様に失礼にあたることも無いと思います。
こんなことは、言わないほうが、かえって、いいのでしょうけれども。(~_~;))

[ ]
RE:02206 「Box選択領域を罫線で囲む」事No.02208
TAKA さん 01/05/24 19:02
 
TAKA です。

>どうか、マクロを作成していただけないでしょうか?
>できましたら、太字と細字が使い分けれると、嬉しいのです。

作ってくれる人がいるかどうか分かりませんが、以下のような場合
に「A」の部分を選択した場合はどうなって欲しいでしょうか?

// 変更前(ここから)
CCCCCCCCCC
CBBBBBBBBC
CBBAAAABBC
CBBAAAABBC
CBBBBBBBBC
CCCCCCCCCC
// 変更前(ここまで)

// 変更後(ここから)
CCCCCCCCCC
C┏━━┓C
C┃AAAA┃C
C┃AAAA┃C
C┗━━┛C
CCCCCCCCCC
// 変更後(ここまで)

のように上書きして「B」の部分は消えていいのでしょうか?
#奇数文字数の選択や、1バイト2バイト文字の混在も気になるなー


BOX選択後にマクロを起動と、操作数を少なくして罫線を引きたい
のが目的だと思いますが、誰からも紹介や作ってくれる人がいない
ようでしたら、普通の罫線作画マクロしかないですね。

http://www.infomadonna.ne.jp/~takata/hm/redl200.lzh
の中に罫線マクロ(Z_KEISEN.MAC)があります。
出来ることは、
・太線、細線、ブランクの罫線作画。
・改行、EOFを超えての罫線作画。
・1バイト、2バイト混在でも罫線がずれないように補正。
・隣接罫線とつながる。
出来ないことは、
・タブ文字の特殊処理はしていない。
などです。

他にも、罫線マクロはありそうですね。

要望とは違いますが、誰からもレスがなければ、罫線マクロや今の
マクロで我慢ですね。


それでは。

[ ]
RE:02208 「Box選択領域を罫線で囲む」事No.02212
きいろいまふらあ さん 01/05/25 02:58
 
>作ってくれる人がいるかどうか分かりませんが、以下のような場合

>のが目的だと思いますが、誰からも紹介や作ってくれる人がいない

>要望とは違いますが、誰からもレスがなければ、罫線マクロや今の

んじゃ暇つぶしに頭の体操も兼ねて作ってみようかな?
つぶす暇がたまにしかないので、多少時間はかかると思うけど。(^^;

あ、別に他の方がお作りになるのを妨げるつもりはないです。

[ ]
RE:02208 「Box選択領域を罫線で囲む」事No.02213
yamasan さん 01/05/25 08:20
 
yamadaです。TAKAさん、有難うございました。

 | // 変更後(ここから)
 | CCCCCCCCCC
 | C┏━━┓C
 | C┃AAAA┃C
 | C┃AAAA┃C
 | C┗━━┛C
 | CCCCCCCCCC
 | // 変更後(ここまで)
 |
 | のように上書きして「B」の部分は消えていいのでしょうか?
 | #奇数文字数の選択や、1バイト2バイト文字の混在も気になるなー

仰るとおりです。これが、私の思っている事です。

 | BOX選択後にマクロを起動と、操作数を少なくして罫線を引きたい
 | のが目的だと思いますが、誰からも紹介や作ってくれる人がいない
 | ようでしたら、普通の罫線作画マクロしかないですね。
 |
 | http://www.infomadonna.ne.jp/~takata/hm/redl200.lzh
 | の中に罫線マクロ(Z_KEISEN.MAC)があります。
 | 出来ることは、
 | ・太線、細線、ブランクの罫線作画。
 | ・改行、EOFを超えての罫線作画。
 | ・1バイト、2バイト混在でも罫線がずれないように補正。
 | ・隣接罫線とつながる。
 | 出来ないことは、
 | ・タブ文字の特殊処理はしていない。
 | などです。

分かりました。お騒がせして、申し訳ないです。
有難うございました。

[ ]
RE:02212 「Box選択領域を罫線で囲む」事No.02316
きいろいまふらあ さん 01/06/13 01:19
 
>んじゃ暇つぶしに頭の体操も兼ねて作ってみようかな?
>つぶす暇がたまにしかないので、多少時間はかかると思うけど。(^^;

ということで制作中です。
いろいろ無駄が残っており、またうまく動かないとこもいろいろあるんですが、
とりあえず方向性の確認という意味で、いったんアップします。

罫線の太さは選択できるようにしたいとこです。まだ未対応ですが。

長くてごめんなさい。

//enclose.mac
//矩形範囲の外側を文字で囲む

//矩形選択→その範囲を囲む
//行選択→その範囲を囲む
//1行内の部分選択→その範囲を囲む
//複数行に及びかつ行選択でない場合→処理しない
//範囲選択されていない場合→処理しない

//ファイル先頭から選択されていたら、先頭に1行挿入する
//1桁目あるいは2桁目から選択されていたら2桁あるいは1桁右にシフト
//選択範囲の横幅が半角で奇数だったら右に1桁余白を入れる

//折返しがあったりすると無残な姿になるでしょう。

//罫線素片の準備
$chrs = "─│┌┐└┘";
//$chrs = "━┃┏┓┗┛";

//罫線素片の配列変数への格納
#i = 0;
while(#i < 6){
    $chr[#i+1] = midstr($chrs, #i * 2, 2);
    #i = #i + 1;
}

//選択状態を確認して範囲を記憶
if(rectselecting){
    #bx = seltopx;
    #by = seltopy;
    #ex = selendx;
    #ey = selendy;
    escape;
}else if(selecting){
    if((seltopx + selendx == 0) && (seltopy != selendy)){
        #bx = 0;
        #by = seltopy;
        #ey = selendy - 1;
        escape;
        moveto #bx, #by;
        #ex = 0;
        while(y <= #ey){
            golineend;
            if(#ex < x){
                #ex = x;
            }
            moveto 0, y + 1;
        }
    }else if(seltopy == selendy){
        #bx = seltopx;
        #by = seltopy;
        #ex = selendx;
        #ey = selendy;
        escape;
    }else{
        message "矩形選択、あるいは行選択した状態で実行して下さい。";
        endmacro;
    }
}else{
    message "矩形選択、あるいは行選択した状態で実行して下さい。";
    endmacro;
}

//フリーカーソルモードに
#fc = freecursor;
if(! #fc){
    freecursorswitch;
}

//1行目から選択されていた場合
if(#by == 0){
    gofiletop;
    insert "\n";
    #by = #by + 1;
    #ey = #ey + 1;
}

//1桁目から選択されている場合
if(#bx == 0){
    #bx = 2;
    #ex = #ex + 2;
    moveto 0, #by;
    while(y <= #ey){
        insert "_";
        golineend2;
        down;
        golinetop2;
    }
}

//2桁目から選択されている場合
if(#bx == 1){
    #bx = 2;
    #ex = #ex + 1;
    moveto 0, #by;
    while(y <= #ey){
        insert "_";
        golineend2;
        down;
        golinetop2;
    }
}

//枠の座標に変換
#bx = #bx - 2;
#by = #by - 1;
#ex = #ex;
#ey = #ey + 1;

//枠最終行に[EOF]が存在するとき
moveto #ex, #ey;
while(! result){
    gofileend;
    insert "\n";
    moveto #ex, #ey;
}
golineend2;
if(code == eof){
    insert "\n";
}

//左側桁揃え
moveto #bx, #by;
while(y <= #ey){
    if(x == (#bx - 1)){
        insert " ";
    }
    moveto #bx, y + 1;
}

//右側桁揃え
moveto #ex, #by;
while(y <= #ey){
    if(x == (#ex - 1)){
        insert " ";
    }
    moveto #ex, y + 1;
}

//選択範囲幅が奇数の場合
if((#ex - #bx)/2*2 != (#ex - #bx)){
    moveto #ex, #by;
    while(y <= #ey){
        insert " ";
        moveto #ex, y + 1;
    }
    #ex = #ex + 1;
}

//上の線を引く
moveto #bx, #by;
while(x <= #ex){
    overwrite $chr[1];
}

//下の線を引く
moveto #bx, #ey;
while(x <= #ex){
    overwrite $chr[1];
    if(! result){insert $chr;}
}

//左右の線を引く
moveto #bx, #by;
while(y <= #ey){
    moveto #bx, y;
    overwrite $chr[2];
    moveto #ex, y;
    overwrite $chr[2];
    down;
    if(! result){break;}
}

//四隅を書く
moveto #bx, #by; overwrite $chr[3];
moveto #ex, #by; overwrite $chr[4];
moveto #bx, #ey; overwrite $chr[5];
moveto #ex, #ey; overwrite $chr[6];

//後処理
if(! #fc){
    freecursorswitch;
}
endmacro;

[ ]
RE:02316 「Box選択領域を罫線で囲む」事No.02317
yamasan さん 01/06/13 09:38
 
きいろいまふらあ さん、おはようございます。yamasanです。

マクロを試しました。分かりにくいかもしれませんが、
希望したい事があります。
お怒りにならないで、お聞きくださいますようにお願いします。

////例:1////
<img src="image/genin_1.gif">
<img src="image/genin_2.gif">
<img src="image/genin_3.gif">
////ここまで(例:1)////

////例:2////
yamasan
<img src="image/genin_1.gif">
<img src="image/genin_2.gif">
<img src="image/genin_3.gif">
yamasan
////ここまで(例:2)////

上のような例(改行が必ず入り、折り返しについては必ず無いとします。)
2つに対して、enclose.macを実行しました。
範囲選択部分は、2例共に
<img src="image/genin_1.gif">
<img src="image/genin_2.gif">
<img src="image/genin_3.gif">
の部分で同じ範囲です。2例共に、下のようになりました。

////処理後////
┌───────────────┐
│<img src="image/genin_1.gif"> │
│<img src="image/genin_2.gif"> │
│<img src="image/genin_3.gif"> │
└───────────────┘
////処理後・終わり////

--------------
私としては、例:2に対してenclose.mac実行後は、
下のようになってもらいたいです。

なぜかというと、そうするとは、enclose.macを行頭からの範囲選択後に、
実行して使えます。(マクロ前の範囲選択も、Box選択しなくても
マウスで、単純に選択できますので)

その後で、Box選択して、コピーないし移動すると、
私としては、編集しやすいという理由です。

////希望////
yamasan
┌───────────────┐
│<img src="image/genin_1.gif"> │
│<img src="image/genin_2.gif"> │
│<img src="image/genin_3.gif"> │
└───────────────┘
yamasan
////希望・終わり////

お構いなければ、ご考慮していただけませんでしょうか。
申し訳ありませんでした。

[ ]
RE:02317 「Box選択領域を罫線で囲む」事No.02318
TAKA さん 01/06/13 12:28
 
TAKA です。

>マクロを試しました。分かりにくいかもしれませんが、
>希望したい事があります。
>お怒りにならないで、お聞きくださいますようにお願いします。

怒られることはないと思いますが、私が、「2208」で、罫線は上書
きが希望ですかと聞いたところ、yamasanより、「2213」で「仰る
とおりです。」という回答を頂いたので、きいろいまふらあさんは
その仕様で作られたのだと思います。

きいろいまふらあさんが対応してくれるとしたら、上書き(現仕様)
か挿入(新仕様)かの切り替えが可能だといいですね。
切り替えは、「Insert」キーで設定した内容に依存というのでも、
良いとは思います。

[ ]
RE:02318 「Box選択領域を罫線で囲む」事No.02319
yamasan さん 01/06/13 14:00
 
yamasanです。

 | 怒られることはないと思いますが、私が、「2208」で、罫線は上書
 | きが希望ですかと聞いたところ、yamasanより、「2213」で「仰る
 | とおりです。」という回答を頂いたので、きいろいまふらあさんは
 | その仕様で作られたのだと思います。

えーと、そのときとは、状況が違うので、
説明できなかったのです。ごめんなさい。(~_~;)申し訳ないです。

本当は、きいろいまふらあさんのenclose.macで痛痒無いです。
ものすごく嬉しいのですが、その上で、希望と言う意味です。
(このままでも、かなり思いが適っていますので)

enclose.macと 以前に申しましたboxwrite.mac を
適宜使い分けることで、私的には、Box罫線については、
これ以上望むものは、なくなりました。
きいろいまふらあ さんには、重ねてお礼申し上げます。

[ ]
RE:02319 「Box選択領域を罫線で囲む」事No.02323
きいろいまふらあ さん 01/06/14 01:34
 
> | 怒られることはないと思いますが、私が、「2208」で、罫線は上書
> | きが希望ですかと聞いたところ、yamasanより、「2213」で「仰る
> | とおりです。」という回答を頂いたので、きいろいまふらあさんは
> | その仕様で作られたのだと思います。

TAKAさんのおっしゃる通りでして、その辺も含めて確認したかったので、未完成
ながらアップしたわけでして、気分を害したりはいたしませんのでご安心を。

>本当は、きいろいまふらあさんのenclose.macで痛痒無いです。
>ものすごく嬉しいのですが、その上で、希望と言う意味です。
>(このままでも、かなり思いが適っていますので)

両方いけるといいわけですね。
んじゃ一回メニュー出すようにしましょうか。
しばしお待ちを。

[ ]
RE:02323 「Box選択領域を罫線で囲む」事No.02324
しろうとりい さん 01/06/16 20:15
 
こんばんは、はじめまして>皆様

マクロの作成は、きいろいまふらあさんはじめ、皆さんに、お任せし
ますでゴミまき(^^;

今回の話題のおかげで、昔、昔、sentukai.lzhを@nifty fwinal lib19
に勢いであげてしまい、ちょっと直さなければと思ったことがあった
のを放ったらかしにしているのを思い出すことができました。今さら
手を入れるほどのものではない(^^;;;

#PC変えたらGuestになってしまって、ここに素人Leeで入れなくなっ
てしまった・・・

しろうとりい 肩叩きを食らってちょっと大変

[ ]