VZEditor/VZ-IBM/KEISEN.DEF
Yoshihiko Hyodo 6f06b9514a first commit
2024-11-18 22:21:26 +09:00

170 lines
3.7 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

======== keisen.def 作表マクロ (98罫線v1.02) ========
;
;【作表マクロの操作方法】
;
; [ESC]H :作表メニュー
;
;・まず、『D 外枠の描画』メニューを選択し、カーソル位置に指定のサイズの外枠を
; 書きます。
;・外枠を書き終わると、最下行に《作表 〔罫線%c》と表示され、作表モードに入り
; ます。
;・作表モードでは、通常の編集コマンドの一部を、作表用のコマンドに置き換えます。
;
; [CR] :罫線引く/消す(カーソルが上枠/左枠上の時)
; ^F,^A :横方向拡大/縮小(カーソルが上枠上の時)
; ^C,^R :縦方向拡大/縮小(カーソルが左枠上の時)
;
;・また、表の内部で文字を書いたり、文字を削除しても、右枠の位置はずれません。
; ただし、矩形ブロックコマンド等で表の内部に文字列をコピーした場合は、
; 右枠の位置はずれてしまいます。
;・作表モードを終了する場合は、[ESC]H で作表メニューを表示して、『Q 終了』を
; 選択してください。
;・既存の表で作表を行なう場合は、表の左上<E4B88A>にカーソルを移動し、[ESC]H で
; メニューを表示し、『E 作表モードへ』を選択してください。
;・随時、『S 罫線 [<5B>]』メニューで罫線の種類を変更できます。
;
;★注意★ 表の直後は、1行空けて空白行にしておかなければ、正常に動作しません。
* M マクロ
70 [ESC]H "作表メニュー"
?.
(mm)? &q
pp="<22>",
:A t=pp.1&1,
!01
(r)>?{ ; 作表メニューで分岐
>20
>10
{ pp.1^=1, >A }
{ mm-,&m("作表終了") / }
}
(mm)? >20 /
;--- 外枠描画 ---
10: xx=lx,
&g("横幅:") (r<0)? . u=r&1~,
&g("縦幅:") (r<0)? >^ v=r,
(u+4>=wd)?{ wd=u+lx+5, &d }
mi[, ei[, mi-, ei+,
(ct)??{ #n #n } ; <-- v1.02
#l (t)? >A
'<27>' (u/2){'<27>'} '<27>' >B
:A '<27>' (u/2){'<27>'} '<27>'
:B (v)?? >D
#m (t)?'<27>'?'<27>' (u){' '} (t)?'<27>'?'<27>'
(v<2)? >D
#k (v==2)? >C
(v-2){ #p #x }
:C #i #x
:D #m (t)? >E
'<27>' (u/2){'<27>'} '<27>' >F
:E '<27>' (u/2){'<27>'} '<27>'
:F ei], mi],
>>
;--- 初期化 ---
20: mm+, &m("作表 〔罫線%c", '<27>'+t)
x=lx, #> uu=lx, &x(x) ; カーソル位置の表の横幅を求める
p="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
>>
;--- 1文字入力 ---
30: &p (c=r)(s)? >N ; 編集モードでなければスキップ
(c<$FF)?{ &40 >^ } ; 文字の入力
(c==#m)?{ &50 >^} ; [CR]
(c==#f || c==#a)?{ &60 >^ } ; ^F,^A (→←サイズ変更)
(c==#c || c==#r)?{ &65 >^ } ; ^C,^R (↓↑サイズ変更)
(c>=#h && c<#@ )?{ &40 >^ } ; 行の編集コマンド
(c==#i || c==#p)?{ &40 >^ } ; ブロックのペースト
:N &o(c) >^
;--- 罫線保存 ---
40: (cd&1~!='│')??. ; <-- v1.01
&s &o(c)
x=lx, #> xx=lx, #s d=cd&1~, &x(x)
(d=='<27>')?{ (d=xx-uu)? >A } >Z
:A (cd&1~!='<27>')?{ #d (lx<xx)? >A >Z }
(d>0)?{ (d){ #h } >B } (-d){' '} :B &x(x)
:Z #?
;--- 罫線描画/消去 ---
09: &o(c)
05: &f(cd,p) n=r,
06: a+=t,a=p..a,&o(a!!)
50: &05
(n<0)? >09
(n>=24)? >09
(n>=22)? >55
(n>=20)? >51
(n<4)?{ #y . }
(n<8)? >56 >09
;--- ヨコ罫線 ---
51: &s i=0,
:A #e i++,&f(cd,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") (r>=0)? >A
#k (i){#x} #i
mi[,mi+,a=n<<1&2,&06
:B &05
(n<0)? >D
(n>=26)?{ a=n<<1&2+8, &06 >C }
(n>=22)?{ &o('<27>'+t) >C }
a=n&2+16, &06
:C (n<26)? >B
:D mi], #a #?
;--- タテ罫線 ---
07: a+=t*2, a=p..a, &o(a!!) #s #x
55: &s mi[, mi+,
a=n&1+4, &07
i=0,
:A i++, (cd==$0D)? >B
c=cd&1,(cd&1~!='<27>')??{ a=c+16, &07 >A }
(ck)?? #g &o('<27>'+t) #s #x >A
:B #e a=c+12, &07 >70
56: &s mi[, mi+,
i=0,
:A i++, &05
(n<20)?{ &o('<27>'+n&1) #s #x (n&3~!=12)? >A >70 }
' 'mi-,' ' mi+, #s #s #x >A
;--- 拡大/縮小 ---
60: uu+=2, (c==#a)? (uu-=4)
(cd&1~!='<27>')? >09
&s mi[, mi-,
i=0,
:A (cd==$0D)? >70 i++,
(c==#a)?{ #g (ck)?? #g >B }
&o(cd) #s (ck)??{ &o(cd) #s }
:B #x >A
65: (cd&1~!='<27>')? >09 (c==#c)?{ #k #i }? #y
70: mi], (i){ #e } &d
* Pop up menu
1 "",12,4
"E 作表モードへ"
"D 外枠の描画"
"S 罫線 [$pp]"
"Q 終了"
*
======== End of keisen.def ========