一括表示

− 野ざらし言 −

[4456] 第二の置換

めざら 2018/08/10(Fri) 00:36
http://mezala.la.coocan.jp/
テキストの文字列を取得後検索でマッチした場所の周辺で一定の置換を実行し,
また元の位置に戻る…という作業を繰り返すことがあります.

置換を実行すると検索文字列が更新されてしまって,
履歴を遡及することが面倒だというときに使う超小物.

= PS2JB^QA.def =
*m
1 ^QA "" ?.
        &> ps[=r,
        #56 #e &Cr
        ps],
0:      (5+$)."$(50,0)$[80]"
*

#e はケースバイケースで取ったり付けたり.

[4457] Re: 第二の置換

文太 2018/08/11(Sat) 20:58
[4456]へのコメント
めざらさん

 焼肉パーティ以後、何となくVzマクロをごにょごにょしている時間がけっこうある、文太です。楽しいの。

>テキストの文字列を取得後検索でマッチした場所の周辺で一定の置換を実行し,
>また元の位置に戻る…という作業を繰り返すことがあります.

 これは個人的には、まったく同じ場面はなかったなぁ、と思いつつ、でも、はまったら絶対ものすごく嬉しいマクロでしょうね。このとんち、すばらしい!
 検索マクロばっかりな人なもので、なんか近いものはあったような気がするんだけどな、という感じ。それでなおさら、一本! ざぶとん20枚な作品でした。
 また、こんなアイディアがあったら書き込んでみてくださいね。そういうのあったな、という記憶だけで3年に一度、思い出したように、Vzマクロでごにょごにょする人なので。
 おもしろかった!
 なぜか、qbasicな本まで引っ張り出してきてしまってます。外が暑すぎるからでしょうか。<>, DIM なんてのが気になったりして、、、。これはkonnoさんの話に影響されたんだな。

[4458] Re^2: 第二の置換

文太 2018/08/11(Sat) 23:02
[4457]へのコメント
= cleanPS.def = Search with clean PS
PSを汚さない検索。シフトで上へ検索。ノーマルは下へ。
*m
10 ^NF "" ?.
        k=ks&1,
        &00 ps[=r,
        #F &Cr (r<0)? { ps], .}
	(k)? #c ? #r
        ps],
00:      (5+$)."$(50,0)$[80]"

20 ^IF "" ?.
        k=ks&1,
        &01 ps[=r,
        #F &Cr (r<0)? { ps], .}
	(k)? #c ? #r
        ps],
01:      (5+$)."$(50,0)$[80]"

*
 ある場面でなら、これは僕にはかなり使えるマクロです。
 psを汚されて、#e とかがかなり面倒という場面は、間違いなくあったから。

 瞬間的に、擬似的に、#F (^F が僕のところのキーアサイン ) が、3種類でき
るとか、、、。^NF とか ^IF とかせこいことを言わずに思い切って、^D, ^S に
してしまえば、、、。ごちゃごちゃするかなぁ、、、。「後優先」はエライです。

 再検索が効かないのがなんですねぇ。やはり #e が必要になってしまう、、、。
 これ以上は求められないだろうなぁ、実力的に。
 aa とかの2文字変数をフラグにして、再検索で #F (aa)? #e とすればよろし、
かな。甘いかな、、、。

 こういうのは、使うときにマクロファイルを開いて再カスタマイズ、不要にな
ったら、マクロメニューから手で消す、というのが得意な使い方です。ふだんか
ら全部のマクロが使えるようになってる必要なんかないんだ、というのが7年位
前の発見でした。いつまでも進歩しつづけられるお得な性格&実力。

 あまりにもコードに重複がおおいけど、グローバルマクロまたぎはいけないで
しょうね、やっぱり。使い捨ては、これでいいと思う、、、。

[4459] Re^3: 第二の置換

文太 2018/08/12(Sun) 01:13
[4458]へのコメント
 グローバルまたぎをしてみて、反省しました。いけません、汚いです。
 ほとんど進歩していませんが、これで保存します。あーん、これ、すてき、
めざらさんにヒントをもらったんだ、と思い出すことでしょう。


=== CleanPS.def (ver 2) by B ===; Search with clean PS, shift heavy.
#if 0
inspiration from mezala!
PSを汚さないイミディエットサーチ。シフトで下方を、ノーマルで上方を検索。
2個目、3個目の検索コマンド。セカンド#F、サード#F。
いつでも#eします。違う文字列で検索するなら#xするか、★行をコメントアウト。
自前ヒストリーをPSとすりかえ、イミサーチにしてるだけ。
#endif

* M
10 ^D "2nd #F" ?.
        k=ks&1,
        &00 
	ps[=a,
        	#F
        	#e			;★コメントアウトあり
        	(k)? {&m(" Search ↓↓ ^r/^c不可")} 
        	   ? {&m(" Search ↑↑ ^r/^c不可")}
        	&Cr (r<0)? >z
		(k)? #c ? #r
;		(k)? #r ? #c		;★下方サーチが多いならこっち
		(r)?? &m("%s",a)	; 上のメッセージも反転せよ
:z	ps], .
00:     a=5+$,."$(50,0)$[80]"

20 ^S "3rd #F" ?.
        k=ks&1,
        &01
	ps[=b,
        	#F
        	#e			;★コメントアウトあり
        	(k)? {&m(" Search ↓↓ ^r/^c不可")} 
        	   ? {&m(" Search ↑↑ ^r/^c不可")}
        	&Cr (r<0)? >z
		(k)? #c ? #r
;		(k)? #r ? #c		;★下方サーチが多いならこっち
		(r)?? &m("%s",b)	; 上のメッセージも反転せよ
:z	ps], .
01:     b=5+$,."$(50,0)$[80]"

*

[4460] CleanPS.def (final)

文太 2018/08/12(Sun) 15:32
[4459]へのコメント
 題。とはいえ、現場では、ちょこちょこいじることになるのだろうと思う。

 しつこーい。すいません。
 頭の中は「検索」という概念。しかし実際には、検索文字列の設定と検索(カーソル移動)
の2工程。
 手動でやっても、#Fして#r(たとえば)する。3つ目のヒット箇所に飛びたいときには
#rを3回ですよね。そこが違うだろう! というわけで、cm なんて昔懐かしい(15年は
使ってない)変数を使ってみました。連続実行ですぐです。止めてほしいときは、1つカーソル
を動かせばいい。


=== CleanPS.def (ver 3) by B ===; Search with clean PS, shift heavy.
#if 0
inspiration from mezala!
PSを汚さないイミディエットサーチ。シフトで下方を、ノーマルで上方を検索。
2個目、3個目の検索コマンド。セカンド#F、サード#F。
いつでも#eします。違う文字列で検索するなら#xするか、★行をコメントアウト。
自前ヒストリーをPSとすりかえ、イミサーチにしてるだけ。
連続実行で、検索文字列設定をスキップ、#r #rの感覚になる。
^Q4で前の箇所へ。
#endif

* M
10 ^D "2nd #F" ?.
	&#M(4)		;ver3
        k=ks&1,
        &00 
	ps[=a,
	(cm==100)? >a	;ver3
        	#F
        	#e			;★コメントアウトあり
        	(k)? {&m(" Search ↓↓ ^r/^c不可")} 
        	   ? {&m(" Search ↑↑ ^r/^c不可")}
        	&Cr (r<0)? >z
  :a		(k)? #c ? #r
;		(k)? #r ? #c		;★下方サーチが多いならこっち
		(r)?? {cm=100, &m("Search Word: %s",a)}	; 上のメッセージも反転せよ
  :z	ps], .
00:     a=5+$,."$(50,0)$[80]"

20 ^S "3rd #F" ?.
	&#M(4)		;ver3
        k=ks&1,
        &01
	ps[=b,
	(cm==100)? >a	;ver3
        	#F
        	#e			;★コメントアウトあり
        	(k)? {&m(" Search ↓↓ ^r/^c不可")} 
        	   ? {&m(" Search ↑↑ ^r/^c不可")}
        	&Cr (r<0)? >z
  :a		(k)? #c ? #r
;		(k)? #r ? #c		;★下方サーチが多いならこっち
		(r)?? {cm=100, &m("Search Word: %s",b)}	; 上のメッセージも反転せよ
  :z	ps], .
01:     b=5+$,."$(50,0)$[80]"

*

[4461] Re: CleanPS.def (final)

めざら 2018/08/13(Mon) 10:08
[4460]へのコメント http://mezala.la.coocan.jp/
コメント,ありがとうございます.
怒涛のアップになかなか随いていけないでおりますが,
まずひとつ反応しておきますと,〈グローバルまたぎ〉.
これは VZ のコール/ジャンプの「ルール」(mac16.docに記述)に沿えば
まったく問題なく,行儀が悪いことにはならないと考えています.
・実行位置以下のモジュール内を,ローカル/グローバルを問わずサーチ.
・見つからなければマクロバッファの先頭からグローバルのみサーチ.
少なくともプッシュ/ポップがまたいでいるより遥かに行儀よい(^-^;

例えば,榊原知さんの究極の名作「いきなりブロック」(注:手元の環境)
39 @[<--] ""    &00 #s
39 @[-->] ""    &00 #d
39 @[UP] ""     &00 #e
39 @[DOWN] ""   &00 #x
0:      ?. (mb)?. #b

例えば,上村郁夫さんの痒届(何)名作「他画面スクロール」(注:手元の環境)
50 ^T ""        c=#r, >01
50 ^V ""        c=#c, >01
50 ^[UP] ""     c=#w, >01
50 ^[DOWN] ""   c=#z, >01
01:     (s)?. (wt)??{ &o(c) . }
        &s #W &o(c) #W
        (ks&1)?&o(c) &d

例えば,手前味噌ですみません.(名作と並べるなっての ^^;)
;= ^QF.def = H_ear mp0常用者のいきなり検索・次検索
55 ^QF "" ?. k20&ks, mp[, (ks&1)?{ &j(10) }
        #F &Cr &j(-1)
        (r)?{ mp], . }
        &s (k)?#r ?#c >01
35 ^R "" ?. (ks&1)??{ #r . } c-, >00
36 ^C "" ?. (ks&1)??{ #c . } c+, >00
0:      &s mp[=2, &o(#r+c) >>
1:      (r)?{ &o(#c-(cm-35)) &b(2) } mp], &d
        (r)?{ &m(19) }
           ?{ &m("%c",cm+'÷' ) }       ; ▲▽ (59:^_)('∞':↑↓)
;------ end of ^QF.def ------

> cm なんて昔懐かしい(15年は使ってない)変数を使ってみました。

そういえば滅多に使わないですね.
…と言うか,ものすごく実用的なコマンド拡張常用マクロでは頻用されるのかな?
わたしの#Fコマンド拡張でも,メッセージ表示に利用していましたね.表示だけ.

うーん,イミディエートサーチか…
いきなり検索よりネーミングかっこいいな

[4462] CleanPS.def (final+1)

文太 2018/08/13(Mon) 13:52
[4461]へのコメント
 色々とごめんなさいね。そして、ありがとうございます。
 勉強になります。またぎは、mac16.doc も読ませていただきました。要約うま
いなぁ。微妙なところなんだけど。
 3つのサンプル、これまた勉強になりました。他画面スクロール(とりわけキ
ーアサイン)とmpですね。うーむ、マクロの中でない場合、mpを気にしな
くても、ほとんど困らないような気もするし、あれっ? と思ったことがあった
ことはあったような、、、。#FでのFEP制御も、、、うーん。シフトキーっ
てけっこう押しづらいのですよね。#FしてからFEPは立ってますか? と自問
してますね。
 C(論理ページング。何の略?)だけ、すごく気にする、当たり前。これ、
けっこう好き。秀丸にはないでしょう、きっとこんなの。

 ただ、もうちょっと落ち着いて、慌てず、PC・Vz・自分の挙動と、
じっくり付き合ったほうが幸せなんじゃないか、とも思っています。mp
を気にするとか。

 ほとんど変わってはいないのですが、以下で可読性を保持しつつ少しまたがせ
て、気になっていたcm値をばらしました。ローカルマクロの返り値の12回目
の復習をしたりして。
 何かすごく気に入っているマクロになりました。すごく楽しい! 多謝 m(__)m

 あ、いきなりブロックは、僕は、さらに、えすてまさん技を入れているようでした
(ぜんぜん使用頻度は高くないですが)。ときどき窓が邪魔になります。なるほど、
cmの正しい使い方みたいだ。あれ、なんで256足すんだっけ?
 けっこうネストしてるなぁ、、、。動けば正義。

50 @[UP]	"Win ↑/イキナリブロック"	(s-1)? >A ? {c2,  >00}
50 @[DOWN]	"Win ↓/イキナリブロック"	(s-1)? >B ? {c10, >00}
50 @[<--]	"Win ←/イキナリブロック"	(s-1)? >C ? {c1,  >00}
50 @[-->]	"Win →/イキナリブロック"	(s-1)? >D ? {c5,  >>}
00:      wl[=c, cm[, #[ &d &o(r]+256) wl],.

 :A &01 #e.	;"いきなりぶろっく"by tomo  "Win↑"by えすてま PK(14)#03944
 :B &01 #x.
 :C &01 #s.
 :D &01 #d.
01:      (s==0)??. (mb)?. #b

>うーん,イミディエートサーチか…。いきなり検索よりネーミングかっこいいな
 うーん、どうだか。いきなり検索のほうが字が少ないし。
 むこうでああいう話をしているから、というお話です。けっこう深いから面倒
なのですが。
 immedi"ate" (形容詞)は「エット」<「イット」と発音するのが正しく、
 educ"ate" (動詞)は「エイト」と発音するのが、正しいです。
 なかをとって、「エート」もありですが。
 ready, ladyとかあって、後者をレディーみたいに発音するの止めませんか、
とは個人的に思っていたりして。レディースは特殊な意味をもっていると思うので、
それはもう日本語だからいいんだけど、、、とか。もちろん、後者はレイディー
が良いです。


=== CleanPS.def (ver 4) by B ===; Search with clean PS, shift heavy.
#if 0
inspiration from mezala!
セカンド#F、サード#F。
PSを汚さないイミディエットサーチ。
自前ヒストリー使用でPSとすり替えてのイミサーチ。
ノーマルで上方を、シフトで下方を検索。
連続実行で、検索文字列設定をスキップ、#r #rの感覚になる。
^Q4、3で、前の箇所へ。
★:ヒストリー呼び出し不要と方向反転のカスタマイズ箇所。
#endif

* M
10 ^D "2nd #F" ?.
        k=ks&1, &#M(4)
        &00 ps[=a,		;buffer
	(cm==100)? >A
        &15 (r==0)? >Z		;set #F
    :A	(k)? #c ? #r		;★
	(r)? >Z
	cm=100,
	&m("^D Mark4, Search Word: %s",a)
    :Z	    ps], .
00:     a=5+$,."$(50,0)$[80]"

20 ^S "3rd #F" ?.
        k=ks&1, &#M(3)
        &01 ps[=b,		;buffer
	(cm==99)? >A
        &15 (r==0)? >Z		;set #F
    :A	(k)? #c ? #r		;★
	(r)? >Z
	cm=99,
	&m("^S Mark3, Search Word: %s",b)
    :Z	    ps], .
01:     b=5+$,."$(50,0)$[80]"

	;----------  local, set #F ----------
15:     #F
        #e			;★ message below, too
        (k)? {&m(" Search ↓↓ ")}
           ? {&m(" Search ↑↑ ")}
        &Cr (r<0)? {&m("") (0)}

*

[4465] cmについて

文太 2018/08/14(Tue) 15:10
[4462]へのコメント
#[ = #03
|
#] = #85
 途中で歯抜けはありますが、上のような並び。
 ころころ変わるわけですが、多重実行で何かするなら、0,1,2,86 ... 
あたりが無難みたいでした。

 lastcmd dw とのことなので、2バイトの入れ物ですね。

 こんなのがありました。ありがたや、ありがたや
= cmdlist = by tomo
* M
89 ^\ "#命令 短縮一覧"
	?.
	#n
	c='<',
:A 	n=pv.(c-'<'),
	(n)?{&?("#%c = #%02d",c,n) #m}
	(c++ <= 'z')?>A
*

 このあとは、sortfがオススメ。

>SORTF -bf -t0x20 +2.1 c:\kekka1.txt > C:\kekka2.txt
 こんなので、いけるはずです。

[4469] Re: cmについて

文太 2018/08/15(Wed) 16:22
[4465]へのコメント
めざらさん

 たいへんに、このうえもなく、瑣末な事柄ですが。

http://mezala.la.coocan.jp/vz/notes/segmap.html
05BE	pv.5	byte	76	a
				A	;こうですよね?

 いやあ、こんなものを作ったc.mosさんもc.mosさんですが、
このサイトを作っためざらさんも、めざらさんです。
 感動。
 一生遊べますね。ソースがあるというのが、いけなかった
のかなぁ。

 どうでもいいのことなのですが、GDATAって、global data
ってことなんですね。
 Buをみて、あ、c.mosさん、一貫して、global > grobalの
ミススペリングしてる、と気づきました。

-------------------------------------------------------

 独り言です。#88-#99もコマンドはあるのですが、ファイラー
コマンドなので、cmに関係しません。でも、100以上にしておけば
もっと覚えやすく、もっと安全かも(心理的に)。

[4471] Re^2: cmについて

めざら 2018/08/15(Wed) 23:09
[4469]へのコメント http://mezala.la.coocan.jp/
> A ;こうですよね?

あら? (^-^;

> 一貫して、global > grobalのミススペリングしてる、と気づきました。

実はよくあるんですね.
古いログを読んでいて,lとrをお間違えの達人を目にすると,ひどく微笑ましく,また少し心がうずきます.

スペルミスは直しておきました.m(_ _)m

[4472] コマンド拡張…、#31, #32

文太 2018/08/17(Fri) 17:21
[4471]へのコメント
めざらさん、
 瑣末な修正以来2回目です。

コマンド拡張で学ぶVZマクロ入門 #31
#31	#w	^W \[PGUP](NEC-98:\[RLDN])	スクロールアップ

s==3(ファイラーモード)
編集モードと同じ(FM+8で指定可能なのカーソルの循環はしない)
↓                ^^トル
編集モードと同じ(FM+8で指定可能なカーソルの循環はしない)

 #32 も同じです。

http://mezala.la.coocan.jp/vz/extcmd/cmd31.html
http://mezala.la.coocan.jp/vz/extcmd/cmd32.html

[4474] Re: コマンド拡張…、#31, #32

めざら 2018/08/19(Sun) 08:36
[4472]へのコメント http://mezala.la.coocan.jp/
ご指摘ありがとうございます.
#00 からシコシコ手直し中で,そこでは直してありましたが,更新には少し時間がかかる見込みなので当面版ですが直しておきました.m(_'_)m

直し始めると,中身がどんどん増えては削り増えては削りしているので,結局大して変わらなかったりします.はふ.

[4483] %%

文太 2018/08/21(Tue) 18:58
[4474]へのコメント
めざらさま(もう様様な感じになってます。ま、後日。m(__)m)

=== Macrotmp by B ===;
* M
50 ^^ "Macrotmp"
	d1+c1+b1+a0,		;得意になっている、えへへへ。
	&m("%%d %d%% %d%% %d%% %d%% %%d",a,b,c,d)

*
 「トークン索引」で、$自体を表す$$はありますが、
%自体を表す%%はないみたいですね。「書式制御」の範疇とはいっても、
他のものと毛色がたしかに違うとは思うのですが。

[4485] Re: %%

konno 2018/08/21(Tue) 22:50
[4483]へのコメント
> 	d1+c1+b1+a0,		;得意になっている、えへへへ。
> 	&m("%%d %d%% %d%% %d%% %d%% %%d",a,b,c,d)

す、凄い!! 普通のプログラム言語で考えたら全然仕組がわからない。
もう、VZマクロの動作を読み切ったカミ様のヨーダ。

>  「トークン索引」で、$自体を表す$$はありますが、
> %自体を表す%%はないみたいですね。「書式制御」の範疇とはいっても、
> 他のものと毛色がたしかに違うとは思うのですが。

VZMACRO.SHD を見ると

各種パラメータ
 エイリアスのパラメータ
   %1〜%9  1〜9 番目のパラメータ
   %*      全パラメータ
   %*n     n 番目以降の全パラメータ
   %:      パス名
   %&      ファイル名
   %.      拡張子
   %<      パス名+ファイル名
   %>      ファイル名+拡張子
   %:n     n 番目のパラメータのパス名
   %\      直前が \ 以外の時 \ を補完
   %-      スイッチキャラクタ
   %%      % 文字

というのがありました。
 %の数が違うと動作不定になるようですね。

[4489] Re^2: %%

文太 2018/08/22(Wed) 01:15
[4485]へのコメント
>す、凄い!! 普通のプログラム言語で考えたら全然仕組がわからない。
 たぶん、そうなのだろうと思います。c.mosさんも、そんな使い方があるなんて思ってたのかなぁ。

>もう、VZマクロの動作を読み切ったカミ様のヨーダ。
 これ、ぜんぜん違います。これが有用な場面があっただけです。解説はめざらさんに。

>%の数が違うと動作不定になるようですね。
 ありそうなことですが、あえて試してはみなくていいですね。そんな変なことするほうが変。

[4503] Re^3: %%

めざら 2018/08/27(Mon) 13:08
[4489]へのコメント http://mezala.la.coocan.jp/
トークン索引のページは誤記が多いことに気付いたので,今更ながら修正しました.(多くは%以外のところ)

メタ文字としての%の件は,文献がなくて,いい加減なことも書けないので保留します.メタ文字って大抵,重ねるとメタ文字の否定を表す…という感じですね.

C言語でも,書式制御はprint系関数が解釈するものであって,コンパイルする時には何ら変換を生じないということですので,VZマクロでも関数内で処理されて後の構文解釈に影響することはないってことなのかな?

> >%の数が違うと動作不定になるようですね。
>  ありそうなことですが、あえて試してはみなくていいですね。そんな変なことするほうが変。

動作不定と言うか,出力されるべき引数の個数が足りないときに「何処から持ってきたの?!」と思わせるくらいでしょうかね.

[4504] サイトのステータスバー(笑)

文太 2018/08/27(Mon) 18:47
[4503]へのコメント
 もちろん、お任せです。

 言うまでもないことをお伝えさせていただきますね。
 感動的な美術館にいる。ものすごい愛と情熱と、きっと祈りの気持ちさえあっ
て作られている。すごい、すごい、とため息すら出ない。恍惚とすらしてしまう。
でも、部屋の片隅に埃がたまっているのに気づいてしまった。4つの角のうちの
1つだけに、奴はいる。取りたい、掃きだしたい、でも手が届かない。というわけ
で、なんだか小姑みたいに、些細なことを、いちいちご報告している次第です。

 最後になると思います。たぶん、めざらさんにはめざらさんのお考えがあるの
だろうとは思うのですが。
 サイトのステータスバー、上のかっちょいい黒と赤の帯のところです。細かい芸
を見てしまった。気づいてなかった。「め」とか。
 で、以下のところに英訳がない。

コマンド拡張マクロ入門
Introduction to Vz Macro Language
or
Introduction to Macro Language: Power up your Vz commands!
or
Vz Commands Enhanced by Macro Language (Introduction)
or
Vz Commands Empowered by Macro Language

VZマクロ関連覚書
Macro Language Notes

 この翻訳は難しい。内容を伝えればよいのでなく、格好良くないといけないから。
英語もつたないしなぁ。まぁ、ネイティブでも詩人でもないのでお許しくだされ。
 もちろん、お任せですよ。めざらさんの作品なのですから。

おっと。

>メタ文字って大抵,重ねるとメタ文字の否定を表す…という感じですね.
 一般論として、これには同意しかねますかね。少なくとも僕が生息している
MS-DOS界隈の住人たちは、やりたい放題なんじゃないか、1つ1つ覚えるのかよ、
と(覚えないしメモすらきちんと取らないのだけど)思うことが多いです。

;p="""",
;p="\"\"",
p="$"$"",	;こうなんですねぇ
&m("%s",p)	;これはあくまでVzマクロの話。
;VWXの正規表現なら? コマンドラインは? ygrepは? izgrepは? jgawkを
;コマンドラインで-f (scriptfile)を使わないと? あうあう

[4508] #00での記述 (final+1)

文太 2018/08/30(Thu) 11:00
[4504]へのコメント

 どうしていつも「final+1」が出てくるのでしょう?

http://mezala.la.coocan.jp/vz/extcmd/cmd00.html
#00 の最後にある、以下のくだりなのですが。

>101キーボードで刻印通りのキー入力ができるとすると,これら3種類のキーはシフトキーを押しながら入力するということになるのでありましょうか。それとも,そのまま ^2 ^6 ^- で入力しても同じなのでしょうか。ご教示ください。

 はい、生まれて初めて、101キーボードのアメリカ製win10(64bit)マシンを買うことになり、試してみました。
 はい、^2, ^6, ^- のままでいいようです。シフトキーを押すとダメでした。

 15.6インチとかの正真正銘の動かせないわけではないデスクトップ型ノートなので、キーが全体にでかい。が、[Enter]は小さい。なんだかスカスカ。
 英語配列、bios verupで、そこそこ慣れてましたけど、でも、苦労も多かった。vtdos、それなりに動きました。日本語が素直に表示されたのには、ちょっと驚き。OSもinternationalizeしてるのでしょうか、それともvtdosのお陰?

[4511] Re: #00での記述 (final+1)

めざら 2018/09/01(Sat) 21:07
[4508]へのコメント http://mezala.la.coocan.jp/
>  はい、^2, ^6, ^- のままでいいようです。シフトキーを押すとダメでした。

ありがとうございます.
何と十三年ぶりの更新ができますよ!

ああ,ようやく嵐の繁忙期が過ぎた.
そして,読書・芸術・食欲の秋が到来するのだった……

貧乏ヒマなし.

[4512] Re^2: #00での記述 (final+1)

文太 2018/09/02(Sun) 18:20
[4511]へのコメント
>何と十三年ぶりの更新ができますよ!
 そうなんですか、おめでとうございます。

>ああ,ようやく嵐の繁忙期が過ぎた.
 よかったですね。僕はこれから……。きた、きた、きた。くわばらくわばら。メールの山、書類の山。ためちゃった。

>そして,読書・芸術・食欲の秋が到来するのだった……
 8月は暑い季節である。9月は残酷な季節である。10月は悲惨な季節である、11月は絶望の季節である。以下、同。

>貧乏ヒマなし.
 まったく。「貧乏、でも余裕はあるよ。そのための貧乏だよ」、が人生の目標だったはずなのに。
 とはいえ、意志力と継続力の大富豪でなけりゃ、あのサイトは作れないですよ。

[4509] 遊び1

文太 2018/08/30(Thu) 16:18
[4465]へのコメント
c:\vzsrc\cmos\macro.asm 194
;--- Command symbol table ---
 記号は人間に分かりやすく。それだけ。番号の振り方に意味がありますね。
	public	cmdsymtbl
cmdsymtbl	db	11		; < cmd #  #< == #11
		db	0		; =
		db	12		; >
		db	29		; ?
		db	0		; D
		db	0		; Z
		db	0		; \
		db	0		; `
		db	0		; j
		db	0		; o
		db	0		; q

=== Macrotmp by B ===;
* M
50 ^^ "M1"
#D #Z #\ #` #j #o #q 
;kekka: #######

51 ^\ "M2"
#
;what's this?
*
 超くだらない、お遊びでした。失礼しました。
 macro interpreterが何をどうしているのか? 「アルファベットを見つけると……」
と誰かが言ってました。榊原さんなら、何が起こっているのか、教えてくれそうな気が
しますね。
 "M2"は、おやおやと面白いのですが、「##」「###」とかすると、正しすぎて、
まったく面白くありません。

[4513] cm について(final+1)!!!

文太 2018/09/02(Sun) 18:22
[4465]へのコメント
=== Macrotmp by B ===;
#08 のようにコマンド番号を書かなければならない場合、#8とゼロを抜いて
書いてはいけません。
もっとも、これら1ケタ台を数字で書くことは、ほとんどないと思いますが。
は、はまった。(;_;)

* M
50 ^^ "Macrotmp"
?.
&t
;#01 &?("#01 %d, ",cm)	;テンポラリーファイルエラー、VTDOS落ち、その他

#02 &?("#02 %d, ",cm)
#03 &?("#03 %d, ",cm)
#04 &?("#04 %d, ",cm)
#05 &?("#05 %d, ",cm)
#06 &?("#06 %d, ",cm)
#07 &?("#07 %d, ",cm)
#08 &?("#08 %d, ",cm)

*
kekka: #02 2, #03 3, #04 4, #05 5, #06 6, #07 7,  #08 8, (整形済み)
cmが返るには返るのです。私用では使わないほうがいいと思う。cm==1は
outlawが使っています。

--- from vz.def ---
01  ^[          ;redo cmd
02  ^_          ;KBM; (^- @dosv)
03  [ESC]
04  ^M  [CR]
05  ^E  [UP]    ;:↑
06  ^X  [DOWN]  ;:↓
07  ^S  [<--]   ;:←
08  ^D  [-->]   ;:→
09  ^QA         :Wd ←

 というわけで、やっぱり、100番以上が、個人の変な使用では、いいようです。

--- from my .shd ---
@CM @Cm @cm 
グローバル変数
 cm  *  直前に実行したエディットコマンド番号
 #nn のエディットコマンドの実行後に
 コマンド番号が保存される
 0-2, 86- , 100ー255あたりが空いている(?)m.gann  <-- これは書き換えですね。
 0は多重実行で頻用されている			  <-- 「が、個人使用では100以上を」
 また、窓の区別もcmで可能
 編集モードでのみ、保存される。
 非編集モードでは、cm+256 が r に返される。

[4477] Hbufsize.def

文太 2018/08/20(Mon) 01:37
[4462]へのコメント
 ふて寝して引きこもりになる前に。
 こんなにイライラすることになるとは思いませんでした。30時間ぐらいの
リハビリでは足りなかったんだろうなぁ。あっち行ったりこっち行ったりしてる
からねぇ。
 はっきり言って、背伸び。mg..0と来ましたよ、rでない内部レジスタという
奴ではないでしょうか! ()で評価したらrに入るような気がしてしまいました。
 前にも作ったことあるような気もするし、、、。
 ズドーンと進んで6回ループします。下手でしょうか?

 自前バッファじゃ足りない、やはりラムディスクのワークファイルだ。
自前バッファ(検索文字列が入ってる(^^;)を自動でファイルに書き出す
マクロがあれば、貧乏症の僕も安心だ……。
 でも、既存バッファがどれだけ使われているのか知ってからだろう、
そのワークファイル使用のマクロを書くのは(これは簡単なの)、と思って
しまったのです。
 はまった、、、。
 記念に上げさせてください。

 レスは明日、書きます。

=== Hbufsize by B ===;disp history buffer size & used size in Ymenu
ただ起動。Ymenuに6つのヒストリーバッファの使用状況を示す。
棒グラフにしたかったんだけどねぇ。もう気力ない、、、。
最後にYmenuの応用性の高いところを落としてしまいました、、、。
各種ヒストリーバッファに何か入れてから試したほうが、まだ楽しいような
気がします。いずれにしても面白くないか。シクシク。

* M
50 ^^ "Hbufsize"

	?.
	a=pq..134,	;256  tmpbuf  cmdlineLbuf,&g()
	b=a+12,		;<a> 12, hist size,  <b> 12, used size
	c=b+12,		;<c> 12, used percentage
	d=c+12,		;<d> 12, usable bytes
	e=pq..135,	;256  tmpbuf2 alias,filer,&g()
			;<e> 41*6=246, for work for data-gathering

; --- get size info of 6 hist buffs ---
	i-,
:a	(i)>?{ (ps) (pf) (px) (pw) (pr) (pa) }
	t=mg..0,			;<t>buffer top
	a..i=t..-1,			;buff size info

; --- get buff names ---
	(i)>?{ (m="PS") (m="PF") (m="PX") (m="PW") (m="PR") (m="PA") }

; --- get used sizes ---
	dx=dz, si=t, ax=t..-1,
		;---strlen2
		; <-- dx = segment, si = offset, ax = buffersize (serch max)
		; --> si = offset
	&i("$(52,1F,33,DB,39,1C,74,04,46,48,73,F8,C3)")
	b..i=si-t,

; --- get percentage of used size ---
	c..i=b..i*100/a..i,

; --- get usable bytes (diff) ---
	d..i=a..i-b..i,

; --- gather all info ---
	&Sp(e,"%c:(%4d) %3d%% used,  %4d bytes usable.",(m..0)!!,a..i,c..i,d..i)
	e+=41,				;formatted result strlen 40+1(null)

	(i++ > 5)?? >a			;6 items, that is 5-times loop, 012345


; --- make menu --- ;thanx for wanama, PK14 96/07/17
	e=pq..135,			;gathered data top address
	#]				;-- make dummy macro --
	n=pn..-27,			;pn..-27 linebuffer
	&01 &Sm(n,r,20)			;dummy macro (menu)
	n+=20, (14){n.0-, n++,}		;nulls for item area ???
	&Sc(n,"HistBuff") n=r+1,	;menu title        (6+1)*2=14 ???
	&Sm(n,e,258)			;copy items
	rr[=pn..-27, &* rr],		;exec!

1:	(3+$)."$(1,a,0,ff,ff,0)!01(r)$(0,e1,fc,0,2a,6)"
;                                           ^^^^^^^^^
*
used: a,b,c,d,e,i,m,t,(n in Ymenu)

PS:(1023)   0% used,  1018 bytes usable.
41 (with null)
42*6=252=$fc

0	size
fc	$fc=252
2a	menu幅 (42): strlen(40) +2(spaces)
6	item個数

[4478] Re: Hbufsize.def

めざら 2018/08/20(Mon) 10:05
[4477]へのコメント http://mezala.la.coocan.jp/
一応,試用レポートです.
"文字列"を'字'として出力する関係で,連続実行すると以下のように.

1回目
+- HistBuff -------------------------------+
| PS:( 325)  23% used,   248 bytes usable. |
| PF:( 281)  24% used,   213 bytes usable. |
| PX:( 127)  57% used,    54 bytes usable. |
| PS:(  91)   7% used,    84 bytes usable. |
| PS:( 127)  14% used,   109 bytes usable. |
| PS:(  91)   9% used,    82 bytes usable. |
+------------------------------------------+

2回目
+- HistBuff -------------------------------+
| SP:( 325)  23% used,   248 bytes usable. |
| FP:( 281)  24% used,   213 bytes usable. |
| XP:( 127)  57% used,    54 bytes usable. |
| WP:(  91)   7% used,    84 bytes usable. |
| RP:( 127)  14% used,   109 bytes usable. |
| AP:(  91)   9% used,    82 bytes usable. |
+------------------------------------------+

&Sp(e,"%2s:(%4d) %3d%% used,  %4d bytes usable.",m,a..i,c..i,d..i)
…で済ましてしまってはいけないのかな……


あと,参考までに,rに入れようとするならローカルから戻す例.
(i) &00 t=r,
00: >?{ (ps) (pf) (px) (pw) (pr) (pa) }

[4480] Re^2: Hbufsize.def

文太 2018/08/20(Mon) 20:59
[4478]へのコメント
めざらさん

 ありがとうございます。
 mの件は、本当に。そんなことになるとは思いもよりませんでしたが、あれ、気持ちが悪い、とは思ってました。&m()の中の%2sが、思い浮かばなかった、というか、そのつもりだったのに、違う方向で無駄にけっこう苦労して、ヒステリーっぽかったのです。いかんですねぇ、楽しくてやってるのに。
 rに入れる件は、それはローカルにはしたくないですね。mgがでてきたからって、いちいちびびるな、という教訓でした。でも、なんどでも復習。ローカルマクロから帰るとき、内部レジスタがrに入る。マシン語ルーチン(あれ外しましたが)から帰るときには、carryがrに入る。

 めざらさんのヒストリーバッファの小ささにびっくり。僕のが無意味にでかすぎるんだなぁ。
 Hbufsize.def。もうちょい整理しています。2つクリア。あと2つ。できるかなぁ。こちらは、CleanPSほど執着ないからなぁ……。

[4502] Re^3: Hbufsize.def

めざら 2018/08/27(Mon) 11:14
[4480]へのコメント http://mezala.la.coocan.jp/
>  めざらさんのヒストリーバッファの小ささにびっくり。僕のが無意味にでかすぎるんだなぁ。

今時分変なところに反応しますが,多分,文太さんは(仕事柄?)英文の検索がほとんどなのでしょう.逆に,自分の場合は和文の固有名詞を検索することが多く,一度マッチすれば,あるいはマッチするものがなければその文字列は終了.したがって,履歴を遡って利用するような場面が少ない.

それに,英文なら先頭の1,2文字を入力してバッファ内のインクリメンタルサーチができますね.これが大きいのではないかなぁ…….

[4481] Re: Hbufsize.def

konno 2018/08/21(Tue) 00:20
[4477]へのコメント
> === Hbufsize by B ===;disp history buffer size & used size in Ymenu
> ただ起動。Ymenuに6つのヒストリーバッファの使用状況を示す。

おお、これ良いですね。早速試してみました。

レポートのために、&Sp を、&? に変えて

> 	&Sp(e,"%c:(%4d) %3d%% used,  %4d bytes usable.",(m..0)!!,a..i,c..i,d..i)
			↓
	(k)? { &?(e,"%2s:(%4d) %3d%% used,  %4d bytes usable.",m,a..i,c..i,d..i) #m}

この場合シフトで動作を変える所ですが、遊びで起動キーで変えてみました。

50 ^\ "Hbufsize"
	k99, &50 k-, .
50 ^^ "Hbufsize"
	(k==99)? k1, ? k=ks&1,

で、結果です。

PS:( 321)  23used,   247 bytes usable.
PF:( 511)  39used,   308 bytes usable.
PX:( 255)  25used,   190 bytes usable.
PW:( 127)  32used,    86 bytes usable.
PR:( 255)   7used,   237 bytes usable.
PA:(  95)   3used,    92 bytes usable.

あれ? % が出力されない? 
私の環境だけかなぁ。?

ちなみに、私のDEF環境は以下です。

Hs256			;ps 文字列ヒストリー	〃
Hf512	;256		;pf ファイル名ヒストリーバッファ
Hx256	;128		;px DOSコマンドラインヒストリーバッファ
Hw128			;pw ☆ワーク用ヒストリーバッファのフリーエリア
Hn256	;96		;pr ☆リネーム時の一時ワークのフリーエリア
Ha96	;64		;pa アプリケーションコマンドヒストリーバッファ ※V1.6無効

PS:( 321) が Hs256 より大きいのは、一周しているからでしょうかね?
アドレスで引き算しているのかなぁ?

[4482] Re^2: Hbufsize.def

文太 2018/08/21(Tue) 01:33
[4481]へのコメント
 今ちょっとだけ手をつけてしまったので、再現できないのですが、

	(k)? { &?(e,"%2s:(%4d) %3d%% used,  %4d bytes usable.",m,a..i,c..i,d..i) #m}
↓
	(k)? { &?("%2s:(%4d) %3d%% used,  %4d bytes usable.",m,a..i,c..i,d..i) #m}

 こうしてみてください。はい、僕も&?()で試してます。

>PS:( 321) が Hs256 より大きいのは、一周しているからでしょうかね?
>アドレスで引き算しているのかなぁ?
 いえ、
PS:( 321) が Hs256
  ps..-1を見ているだけです。きっと、Hs+初期文字列 in vz.defなのでしょう。string:
だっけ(?)に何か設定してるでしょう。
 eのせいなのか?
 Vzを起動して、#Fして#eしてみてください。そのぶんが加算されているんですよ、
きっと。

[4484] Re^3: Hbufsize.def

konno 2018/08/21(Tue) 21:12
[4482]へのコメント
> 	(k)? { &?(e,"%2s:(%4d) %3d%% used,  %4d bytes usable.",m,a..i,c..i,d..i) #m}
> ↓
> 	(k)? { &?("%2s:(%4d) %3d%% used,  %4d bytes usable.",m,a..i,c..i,d..i) #m}
> >  こうしてみてください。はい、僕も&?()で試してます。

そ、そうか、&? では、先頭の e, は書式が不正なんですね。

>   ps..-1を見ているだけです。きっと、Hs+初期文字列 in vz.defなのでしょう。string:
> だっけ(?)に何か設定してるでしょう。

なるほど、確かに初期文字列に61文字ほど入れていました。
256+61=317 なので、改行2つ足して321とかいう感じですかね。

>  Vzを起動して、#Fして#eしてみてください。そのぶんが加算されているんですよ、
> きっと。

納得しました。Hs の実容量は、Hs+PS初期文字列ということですね。
うう、どうやら私が一番VZマクロを忘れているようです。
シナプスが萎萎にぷすっと切れてしまってますね。(^^;

[4490] Re^4: Hbufsize.def

文太 2018/08/22(Wed) 01:37
[4484]へのコメント

>そ、そうか、&? では
 ぜんぜん別の話ですが、?=プリント、というのは、d1+c1+b1+a0,のとは違って、普遍的みたいですね。iがカウンタみたく。
 qbasic editorが、? -> PRINT 変換を自動でやってくれました。

>納得しました。Hs の実容量は、Hs+PS初期文字列ということですね。
>うう、どうやら私が一番VZマクロを忘れているようです。
 いやぁ、僕はかなりのものですよ。Vz言語スキルレベルは、かなりすごいです。そこ(底)まで落ちられるのか、ぐらいに。さすが、俺、とか。
 上の件は、1週間ぐらい前にたまたまやったからです。で、元ネタは、なんと、konnoさんの掲示板。僕が実用を排して、マシン語に初めて本気で取り組んだとき。1kbuf.comでしたっけ? その節は、ほんとうにお世話になりました。m(__)m
 ノスタルジア、ぽろぽろ。

[4492] Re^5: Hbufsize.def

としき 2018/08/22(Wed) 11:08
[4490]へのコメント http://toshiki.la.coocan.jp/
>  ぜんぜん別の話ですが、?=プリント、というのは(中略)普遍的みたいですね。iがカウンタみたく。

ちょっと何かが刺激されたので調べてみました。すると

https://www.wizforest.com/diary/150424.html

ふ〜ん、そういうことだったのね。
このページにも書いてありますが、私も1980年代のBASICユーザーなので、
ほとんど常識という感じでした。
あと、カウンタは i から n まで、というのは、最近はどうか知りませんが、
昔は情報科の授業で必ず出てきた話。それ以上の個数のカウンタがほしい
場合は、高級言語なら i1,i2,i3 ... みたいにします。
これの由来はわりと明確で、integer の最初の2文字、だそうです。


>  ノスタルジア、ぽろぽろ。

そうか、刺激されたのはノスタルジーだったのか。

[4487] Hbufsize.def (final)

文太 2018/08/22(Wed) 01:04
[4477]へのコメント
 タブ、ばしばし入ってます。連打してます。い、いけないの?
 「Vzユーザに捧げる」(『天国』『続天』)
 このマクロは、文太くんは、要らないでしょうけれど、「めざら資源至言」の
作者さまに捧げちゃいます。うへ。


 よく見れば分かるとおり、 ここの末尾にある note1 の全てのバッファを塗り
つぶしてから作業に入ります。これら7つ、連続してます。確認しました。
 つまり、いまや容易に &?() のデバッグプリントが入れられなくなっています。
これに気づくのに1回プールで泳いでくるしかなかった。つまり、かなり時間が
かかったということ。
 これをやると、当然、Vzがお亡くなりになります。VTDOSも道連れです。
 というわけで、ただ見て楽しんでください。
 たぶん、いまや、Vzをそんなに簡単には落とさないと思います。

 イメージですが、僕のところではこんな風に見えています。
 可愛くないし、見やすくもないのですが、棒グラフの上が規定量(満杯マックス)、
下が使用量です。

+- HistBuff -------------------------------+
| PS:(1023)  28% used,   939 bytes usable. |
|  ************************************    |
|  **********                              |
| PF:( 511)   8% used,   467 bytes usable. |
|  ***************                         |
|  **                                      |
| PX:(1045)  17% used,   970 bytes usable. |
|  **************************************  |
|  ******                                  |
| PW:( 511)   3% used,   494 bytes usable. |
|  ***************                         |
|  **                                      |
| PR:(  63)  38% used,    39 bytes usable. |
|  ***                                     |
|  **                                      |
| PA:( 127)   1% used,   125 bytes usable. |
|  ******                                  |
|  **                                      |
+------------------------------------------+

 見栄えがあまりに面白くない、 という人は、星定数(star constant)を書き
換えてください。現在値は僕用に 28 です。
 僕は 1045bytes なPXバッファ(最長)をもっているので、1045/39桁
(in menu)=26.7 -> 28 としています。ちょっと多めにしてください。
 ★の箇所が(star constant=星定数)の場所です。スターコンスタント
「星定数」、なんか気に入ってしまって、この命名法を思いついたときに、
棒グラフ、完成させるところまで行くぞ! と力が入った。なので連呼してます。
 (変数に出したりはしませんよ。近辺に下手っぽいのがあります。スルー
してください)

 めざらさんの場合、
 PS:( 325)  23% used,   248 bytes usable.
 これが最長のようですので、
325/39=8.3 -> 9 or 10

 konnoさんの場合、
 PF:( 511)  39% used,   308 bytes usable.	;% added by B
 これが最長のようですので、
511/39=13.1 -> 14 or 15

 ぐらいでしょうか。
 メニューが壊れたりしたら、Vzを再起動でもして、書き直してください。

 1箇所、無茶してる。でも安心安全です。そういう意味ではありません。背伸び。
 2箇所、情けない、です。


 アルファベットの暗号ばっかりだよ、これ。英語じゃない。右で英語してる。
 編集コマンド、たとえば、#F ちがうか、”あああ”とか、#fとか、&?()
とか、#g、#rみたいなのがないマクロなんて、、、。可愛くないのは、間違いない。


=== Hbufsize by B ===;disp history buffer size & used size in Ymenu
#if 0
ただ起動。Ymenuに6つのヒストリーバッファの使用状況を示す。
(あんまり面白くない、役に立たない)棒グラフ付き。

いつかカーソルを消します。今回は(きっとかなりしばらく)断念。
「嘘だろぉ、これで消えるはずなんだけどなぁ」、ぶつぶつ、、、。
#endif

* M
50 ^^ "Hbufsize"

	?.				;-- thanx! mezala's Vz faq!! --
        d12+c12+b12+a0=pq..139,		;flwork(194), DATA Buff
        				; a-d:12 bytes each
					;  a: hist size, b: used size
					;  c: used percentage
					;  d: usable bytes  (12*6=72 max)
	f=pq..140,			;flwork2(194), STAR Work (max 80)
	e=pq..134,			;tmpbuf+, GATHERD Data (result), see note1
					;  (256)+2(256)+3(160)+64+64=800
					;  e: gathered data (41*18=738 max)

        l=297, p=e-4,			;see note2 below, kya kya kya
        (l){ &Im(p+=4,0) }		;clear all the 8 buffers (pq..134-140)

	i-,				;over all counter

		; --- get max size ---
:A	(i)>?{ (ps) (pf) (px) (pw) (pr) (pa) }
	t=mg..0,			;<t> buffer top address
	a..i=t..-1,			;buff size

		; --- get buff name ---
	(i)>?{ (m="PS") (m="PF") (m="PX") (m="PW") (m="PR") (m="PA") }

		; --- get used size ---
	p=t, l-,			;<p>, <l> local
  :a 	&Sn(p) (r)?? >b
	l+=r++, p+=r++, >a
  :b	b..i=l,

		; --- get percentage ---
	c..i=b..i*100/a..i,

		; --- get usable bytes (diff) ---
	d..i=a..i-b..i,

		; --- gather all data --- ;thanx mezala!
	&Sp(e,"%2s:(%4d) %3d%% used,  %4d bytes usable.",m,a..i,c..i,d..i)
	&Sn(e)

	e+=r+1,

  		; --- make 2-set stars in <f> buffer ---
   	l=f, fy+,				;<l> local
  :c 	(fy)? v=a..i/28, ? v=b..i/28,		;<v> local, num of stars
	     &Sm(l," ",1) l++,
	(v){ &Sm(l,"*",1) l++, } 		; 28, star constant ★
 	     l.0-, l++,				; divider 1045/39=26.7 -> 28
	(fy)?? >d				; すごく下手っぽいと思う。
	fy-, >c
  :d
    		; --- send stars to gathering buffer ---
    	&Sm(e,f,l-f)				;end null already included in src
    	e+=l-f,

	(i++ > 5)?? >A			;6 items, that is, 5-times loop, 012345


		; --- make Ymenu --- thanx for wanama, PK14 96/07/17
	e=pq..134,			;gathered data, (menu items)

	&01				;-- measurements
	#] n=pn..-27,			;linebuffer
	&02 &Sm(n,r,20)			;send dummy macro (+menu header)
	n.16=l+2,			;longest string = menu width (f), 
	n.17=h,				;item num (4)  "+2" added by B above
;	w=n,				;added by B, dame dame
	k=h++*2, n..7=j+k+8,		;n..7 menu size (c0)
	n+=20, (k){ n.0-, n++, }	;nulls for items
	&Sc(n,"HistBuff") n=r+1,	;title (*)
	&Sm(n,e,j)			;items after title (*)
;	w.18=-1,			;no cursor, added by B, dame dame
	rr[=pn..-27, &* rr],		;exec!

01:	j=e, h-, l-,			;- measure longest item,item num, all (*)
  :a	&Sn(j) (l<r)? l=r,		;longest string in <e> buf
	(r)? { j+=r++, h++, >a }	;strings (items) num
	j=j-e,				;all the length (*)

02:	(3+$)."$(1,a,0,ff,ff,0)!01(r)$(0,e1,c0,0,f,4,0,0)"
;					    ^^^^ ^ ^ ^★ overwrite by this macro
;							not successful (T_T)
*
							
used: a,b,c,d,e,f (buffer); i (overall counter), m (Hbuf name), t (Hbuf pointer)
local: (easily destroyed & recyclable):l,p,v
Ymenu: j,k,l,n,h


for debug (don't use this or use discreetly, &?() work is being used!)
&?("%2s:(%4d) %3d%% used,  %4d bytes usable.",m,a..i,c..i,d..i)
ei[-, #m ei],

note1:
tmpbuf		256     pq..134		cmdlineLbuf,&g()
tmpbuf2		256     pq..135		alias,filer,&g()
tmpbuf3		160     pq..136		DTA,smooth,&?(),#O
pathbuf		64      pq..137		filer path
pathbuf2	64      pq..138		filer mask
flwork		194  	pq..139		filer work
flwork2		194	pq..140		filer work2

note2:
512+160+128+388=1188
1188/4=297

[4493] Hbufsize.def (final+1)

文太 2018/08/22(Wed) 20:22
[4487]へのコメント
 実はまだ小さい点が2点ほど、ありはするのですが。
 でも、ま、いいでしょう。「嫌だなぁ」と思っていたところは潰しました。
 おめでとう! 完成です!
 final versionでも、Vzを落とすことはないと思いますよ。大きな違いは、
カーソルを消した(消せた)だけです(final+1)。あとは、僕の小さなこだわり。
 つまり、これで落ちたら、あっちでも落ちます。落ちないと思いますが、
万が一落ちたら、何が原因かお教えください。


=== Hbufsize by B ===;disp history buffer size & used size in Ymenu
#if 0
ただ起動。Ymenuに6つのヒストリーバッファの使用状況を示す。
(あんまり面白くない、役に立たない)棒グラフ付き。

#endif

* M
50 ^^ "Hbufsize"

	?.				;-- thanx! mezala's Vz faq!! --
        d12+c12+b12+a0=pq..139,		;flwork(194), DATA Buff
        				; a-d:12 bytes each
					;  a: hist size, b: used size
					;  c: used percentage
					;  d: usable bytes  (12*6=72 max)
	f=pq..140,			;flwork2(194), STAR Work (max 80)
	e=pq..134,			;tmpbuf+, GATHERED Data (result), see note1
					;  (256)+2(256)+3(160)+64+64=800
					;  e: gathered data (41*18=738 max)

        p=e-4,				;<p> local
        (297){ &Im(p+=4,0) }		;see note2 below, not necessary in fact
					;clear all the 7 buffers (pq..134-140)

	i-,				;<i> overall counter/ptr (makes main loop)

		; --- get buff name ---
:A	(i)>?{ (m="PS") (m="PF") (m="PX") (m="PW") (m="PR") (m="PA") }	;<m>

		; --- get max size ---
	(i)>?{ (ps) (pf) (px) (pw) (pr) (pa) }
	t=mg..0,				;<t> HistB top
	a..i=t..-1,				;buff size

		; --- get used size ---
	p=t, l-,				;<p>, <l> local
  :a 	&Sn(p) (r)?? >b
	l+=r++, p+=r++, >a
  :b	b..i=l,

		; --- get percentage ---
	c..i=b..i*100/a..i,

		; --- get usable bytes (diff) ---
	d..i=a..i-b..i,

		; --- gather all the data --- ;thanx mezala!
	&Sp(e,"%2s:(%4d) %3d%% used,  %4d bytes usable.",m,a..i,c..i,d..i)
	&Sn(e)

	e+=r+1,

  		; --- make 2-set stars in STAR Work <f> ---
   	l=f, fy+,				;<l> local (moving ptr) <- <f> buff
  :c 	(fy)? { v=a..i/28, } ? { v=b..i/28, }	;<v> local, num of stars
	     &Sm(l," ",1) l++,			; 28, star constant ★
	     (v){ &Sm(l,"*",1) l++, } 		; divider 1045/39=26.7 -> 28
 	     l.0-, l++,				;  mezala:10, konno:15, recommended
	(fy)? { fy!, >c }

    		; --- send stars to gathering buffer ---
    	&Sm(e,f,l-f)				;end nulls already included in src
    	e+=l-f,					;2 strings at once

(i++ > 5) ?? >A			;6 items, that is, 5-times loop, 012345


		; --- make Ymenu --- thanx for wanama, PK14 96/07/17
	e=pq..134,			;gathered data, (menu items)

	&01				;-- measurements
	#] n=pn..-27,			;linebuffer
	&02 &Sm(n,r,20)			;send dummy macro (+menu header)
	n.16=l+2,			;longest string = menu width (f), 
	n.17=h,				;item num (4)  "+2" added by B above
	w=n,				; added by B, thanks to mezala
	k=h++*2, n..7=j+k+8,		;n..7 menu size (c0), formula
					; <k> (h+1)*2 = formula, too
					; see #1055 PK13, 93/08/15 neko-san
	n+=20, (k){ n.0-, n++, }	;nulls for items
	&Sc(n,"HistBuff") n=r+1,	;title (*)
	&Sm(n,e,j)			;items after title (*)
	w.19=-1,			;no cursor, added by B, thanks to mezala
	rr[=pn..-27, &* rr],		;exec!                      nozlog #1469

01:	j=e, h-, l-,			;- measure longest item,item num, all (*)
  :a	&Sn(j) (l<r)? l=r,		;longest string in <e> buf, length=<l>
	(r)? { j+=r++, h++, >a }	;items's num <h>
	j-=e,				;all the length (*) <j>

02:	(3+$)."$(1,a,0,ff,ff,0)!01(r)$(0,e1,c0,0,f,4,0,-1)"
;					    ^^^^ ^ ^    ^overwrite by this macro
*

14    16 17 18 19
c0  0  f  4  0 -1

used: a,b,c,d,e,f (buffer/var/ptr); i (overall counter/ptr),
      m (HistB name), t (HistB ptr)
local: (easily destroyed & recyclable): l,p,v
Ymenu: j,k,l,n,h


for debug (don't use this or use discreetly, &?() work is being used!)
&?("%2s:(%4d) %3d%% used,  %4d bytes usable.",m,a..i,c..i,d..i)
ei[-, #m ei],

note1:
tmpbuf		256     pq..134		cmdlineLbuf,&g()
tmpbuf2		256     pq..135		alias,filer,&g()
tmpbuf3		160     pq..136		DTA,smooth,&?(),#O
pathbuf		64      pq..137		filer path
pathbuf2	64      pq..138		filer mask
flwork		194  	pq..139		filer work
flwork2		194	pq..140		filer work2

tmpbuf4		256	pq..149		&z()		not used

note2:
512+160+128+388=1188
1188/4=297

[4494] Re: Hbufsize.def (final+1)

としき 2018/08/23(Thu) 15:08
[4493]へのコメント http://toshiki.la.coocan.jp/
実行してみました。
とりあえず、何かが落ちるようなことはありませんでした。
バッファ大尽の私の場合、一度に全項目が表示されないのはちょっと残念。
スクロールさせれば済む話ですが。でも、Vzで許容される最大サイズの
バッファの場合でもスクロールさせずに全項目を表示できてほしい
気もしますが、この辺、贅沢な悩みということで。

ちなみに私、Hs も Hf も Hx も 4096 に設定してあります。

あ、起動後にファイラーに行くと、パス表示がおかしくなる。
ま、でも、実害はないからいいや。

[4495] Re^2: Hbufsize.def (final+1)

文太 2018/08/23(Thu) 21:29
[4494]へのコメント
>バッファの場合でもスクロールさせずに全項目を表示できてほしい
 「星定数」を適切に設定してください。
 もっとも、「Hs も Hf も Hx も 4096」あはは!! 以外が、つまらない
見栄えになるとは思いますが。

>あ、起動後にファイラーに行くと、パス表示がおかしくなる。
 はい、ファイラでwでも押してください。実害はありません。

[4496] Re^3: Hbufsize.def (final+1)

としき 2018/08/23(Thu) 23:55
[4495]へのコメント http://toshiki.la.coocan.jp/
>  「星定数」を適切に設定してください。

Ymenuというのがよくわかっていないので、適切な設定がわかりません。
試しに、28という定数を100にしてみたのですが、メニュー枠そのものの
横幅が縮んでしまいました。おそらく、メニュー枠そのものを縮めない
ようにすれば私の希望は達成できそうだ、というところまでは理解
できたました。で、そのためにYmenuそのものの勉強からはじめるのは
いささか荷が重い。

[4497] Re^4: Hbufsize.def (final+1)

文太 2018/08/24(Fri) 00:58
[4496]へのコメント
としきさん(台風の影響なの? 恐いのですけど……)

>試しに、28という定数を100にしてみたのですが、メニュー枠そのものの
>横幅が>縮んでしまいました。
 うん、それが狙われていました。

>おそらく、メニュー枠そのものを縮めないようにすれば私の希望は達成でき
>そうだ、

 それでは、
		; --- make Ymenu ---
	e=pq..134,			;gathered data, (menu items)

	&01				;-- measurements
	#] n=pn..-27,			;linebuffer
	&02 &Sm(n,r,20)			;send dummy macro (+menu header)
	n.16=l+2,			;longest string = menu width (f), 
↓
	n.16=l+6,			;longest string = menu width (f), 

 とでもしてみてください。これと「星定数」との兼ね合い。
 星定数=100のまま、上の変更をしてゆく、「+6」や「+4」や「+8」とか。
これでメニュー枠の大きさが決まったら、星定数の最適値を探してみてください。
 Ymenuの原理はあまり関係ないです。「星定数」と「l+6」の関係です。

 いずれにせよ、全体としては、あまり面白い見栄えにはなりません。下2つ
(PR, PA)なんて、ふつう意味ない、と割り切れば(僕です)、上の4つの
最適値が求められます。
 めざらさんや、konnoさんのように「健全」なら、下2つを含め「全体」が
見られるのですが、不健全(ほんとに使えてる? editfileばかりになりま
せん?)な人は、どっかで割り切るしかないのです。所詮これは「情報」
なのですから。
 僕がこのマクロに最初から退廃を感じているのは、そんなわけです。
愚痴なのか!?

追伸:m.gannさんが、「ゴミ捨て場には、paよりpr」と。paの活用なんて……。
完全にゴミ捨て場になってる。これは、少しだけ有益な情報。puのことを考えて
いたのです。

[4500] Re^5: Hbufsize.def (final+1)

としき 2018/08/25(Sat) 00:50
[4497]へのコメント http://toshiki.la.coocan.jp/
>  とでもしてみてください。これと「星定数」との兼ね合い。

わはは、いい感じになりました。
どうもありがとうございました。

[4501] Re^6: Hbufsize.def (final+1)

文太 2018/08/25(Sat) 01:36
[4500]へのコメント
としきさん

>わはは、いい感じになりました。
>どうもありがとうございました。

 そうですか、それはよかった。じつは、自分で「退廃」とか書いて、やっぱり先人たちへの敬意のなさとか、自分への情けなさとか、けっこう引っかかっていたのでしょう。今日、「退廃とかのたまっているのなら、とことんやれよ、おい、何様だと思ってるんだ」みたいな気分になって、新たなプロジェクトに着手してしまいました。
 変な場所で、変なタイミングで、ふと、思いつく。
 俺の頭は、どうなっているのかなぁ……?
 ps+3, paprを分離する、というプラン。ファイラーワークは壊さないほうがいい、全部、ラインバッファでやれよ、とか。
 自己満足なのですが、とことんやるつもりです。誰の役にも立たないのが悲しいところでは、あるんですけどね。
 頭を考えてもみなかった方向へひねってくれて、ありがとう。これだけは伝えておくべきだと思いました。

[4506] Yメニュー

文太 2018/08/29(Wed) 13:41
[4493]へのコメント
=== Ytest by B ===;
PSの文字列からYmenuを作るサンプル。

* M
50 ^^ "Ytest"

	; --- make Ymenu --- 
		;-- thanx to wanama, PK14 96/07/17
		;-- thanx to taneichi, PK14 96/01/29
		;-- of course, the biggest thanx to Yushi

	&01				;-- measurements
	#] n=pn..-27,			;linebuffer
	&02 &Sm(n,r,20)			;send dummy macro (+menu header)
	n.16=l+2,			;longest string = menu width (f), 
	n.17=h,				;item num (4)
;	n.19=-1,			;cursor posit (-1, none)    (A)
	k=2+h*2, n..7=8+k+j,		;n..7 menu size (c0),       (B)
	n+=20, (k){ n.0-, n++, }	;nulls for rest of header   (C)
	&Sc(n,"PS") n=r+1,		;title (*)
	&Sm(n,ps,j)			;items after title (*)
	rr[=pn..-27, &* rr],		;exec!                      (Z)

01:	j=ps, h-, l-,			;measure longest item,item num,all len(*)
  :a	&Sn(j) (l<r)? l=r,		;longest string in PS, length=<l>
	(r)? { j+=r++, h++, >a }	;num of items num <h>
	j-=ps,				;all the length of PS (*) <j>

02:	(3+$)."$(1,a,0,ff,ff,0)!01(r)$(0,e1,c0,0,f,4,0,ff)"
;					    ^^^^ ^ ^overwrite by this macro

*
n: dummy macro + menu header (前半まで) ptr
local:
 j: <- src address // -> length of all the item strings(アイテム全長)
 h: number of items (メニューアイテム個数)
 l: longest string (メニュー幅) 足りないので、枠ぶん増やす。+2

以下、S.KIN氏, 93/5/22, <nifty:FGALPK/MES/13/816> より

 メニュー番号 |E0h
 │ サイズ
 │ │         (items + 1)*2 bytes              アイテム文字列(items 個)
 ↓ ↓        │← アイテム種類 →│            ↓
┌┬─┬┬┬┬┬─┬─┬・・┬─┬─┬─────┬────┬─・・─┬─────┐
└┴─┴┴┴┴┴─┴─┴・・┴─┴─┴─────┴────┴─・・─┴─────┘
       ↑↑↑↑                     ↑
       │││選択アイテム位置       タイトル文字列
       ││パラメータのカラム数(中身の詳細についてはS.KINさんの後のねこさんへ)
       │アイテム数(items)
       横幅

 覚書をほんと簡単にしたためます。

(A) ローカル02のメニューヘッダを書き換えるところです。-1は19バイト目です。
ffのままでいいでしょう。(C)のヌル潰しから外れていますから。

(B) Kは何なのでしょうか。+8の8は何なのでしょうか。8は簡単。メニューヘッダ前半。
ffまでです。
 h*2は間違いない。アイテム個数ぶんX2のアイテムタイプというものが入るそうです。
 では、+2は? 「mn_ext メニュー作成ルーチンのアドレス(vz が初期化)」(和生
さんノートより)が入る。2バイトなので、上のS.Kinさんのように、「(items + 1)*2」
と書いても同じになりますが、いちおう正確をきしたつもり。
 これで、すでにダミーで与えられているメニュー前半以降のメニューヘッダの長さが
でました。Kのことです。kは*itemのとおり、可変です。
 で、アイテムの全文字列長が(j)で、ヘッダ前半が8ですから、メニューサイズの
n..7が埋まりました。

(C) nを20バイト進めるのは、ダミーマクロ+ダミーメニューヘッダ(前半)、つまり
ローカル02が、20バイトだから。
 で、後半以降、メニュータイトルまで(これがk)をヌルで潰す。

(Z) 高橋さん曰く(そのとおりですね、と賛同・理解できる自分が嬉しい)、これが
Yメニューのキモ。

 ご利用の際には、(*)の4箇所だけ書き換えれば、そのままごっくんで行けます。


 何人もの方々がこんなことをしてきたはず。buftourにも感謝。


 +-+--+-+-+-+-+--+--+--+--+----------+------+------+------+
 |0|12|3|4|5|6|78|90|12|34|title str.|item1 |item2 |item3 |
 +-+--+-+-+-+-+--+--+--+--+----------+------+------+------+
              ^   |-item*2-|

=== test by B ===;
* M
50 ^^ "test"
	!01
	.
* P
1       "test",4,3,,-1
        "aaa"
        "bbb"
        "ccc"
*

                         |->menu header
4448h: 00 21 30 31 2E 00 E1 1D-00 04 03 00 FF E8 BF 00  ・!01.・・・・・・・・・ソ・ 
        4  5  6  7  8  9  0  1  2  3  4  5  6  7  8  9
           !  0  1  .    mn  size wd  c vl sl ex ex ・
                                            ^

4458h: 00 00 00 00 00 74 65 73-74 00 61 61 61 00 62 62  ・・・・・test・aaa・bb 
        0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
       ・ ・ ・ ・ ・  t  e  s  t ・  a  a  a ・  b  b

[4510] 遊び2

文太 2018/08/30(Thu) 16:20
[4506]へのコメント
c:\vzsrc\cmos\vz.inc 714
;--- Menu record ---
_menu		struc		;type _menu = 6bytes
mn_wd		db	?
mn_c		db	?
mn_valwd	db	?
mn_sel		db	?	; if -1, no cursor
mn_ext		dw	?	; extern function ptr
_menu		ends

 意味、ありません。
 ちょっと通りすがりに、ふと「どこ?」と。みんなvz.incなんですね。

[4514] MemoMenu.def (v 1.00)

文太 2018/09/14(Fri) 13:58
[4506]へのコメント
 副産物です。割とちゃちゃちゃとできた。しかし、どんどんずれていく。
 「これ、欲しい」と思ったときは、なかなかのアイディアじゃないかとか
思ったのけど、しょぼいな、、、。
 メモをYメニューで見せてくれます。これだけ。

 hist workという自前ヒストリーバッファに文字列をため込み(メニューの内容)、
それをラインバッファに送っておいてから、また自前バッファにYメニューを作り
直して、自前バッファのサイズを抑えています。これを思いついたときは、ちょっと
嬉しかった。(最初は、自前を2つ作っていた。1600*2なので馬鹿にならないなぁ
とか思ってました)。
 strlen2は、実は作りこんであります。(ムダに)色んな情報がでる、当時つき
合ってくれたkonnoさんに感謝。

 "22行*68桁<>19行*78桁" とメッセージに入れてありますが、この程度のサイズの
メモだと思ってください。桁数が小さければ、いちおうそれなりの行数は出ると思い
ます。モバだどどうなるの? 行数が少ないので。
 Vzのメニューには、もちろん、サイズとか画面書き換えとかの制約があるはず
です。が、モバでのテストはやってません。

 (めざらさん、コメントいただければ嬉しいですが、ご無理をなさらないように。
konnoさんのところとどっちにしよう? と思ったけど、いちおう前後の繋がりと、
マクロは「野ざらし」、という大まかなルールだったと思うので、こちらに上げ
させていただきます。UOMですから、問題なしです。<- cf. DOM)


=== MemoMenu (v 1.00) by B ===; Memo displayed on Ymenu
・行ブロックで起動。メニューにそれが出ます。重要事項の参照用マクロです。
・一画面のメニューの制限(Vz)は80字X20行程度。その程度に制限されています。
・一度記憶されたら、それを何度も見せる。消えない。もちろん、マクロ自体がマクロ
 バッファから消えたら、消えるよ。
・新規登録したい場合には、シフトで一度、バッファをクリア。
・ほとんど常に複数ファイルを往復してるのだけど、その往復操作がヘタなので。

* M
50 ^^ "MemoMenu"

	?.
	&10 p=r, 	;hist work -> Ymenu buf (data going thru linebuf)

	; --- SHIFT -> prep for new memo (del buff)
	(ks&1)? { p.0-, &m("Buff cleared. Now, ready for new items.") .}

	(p.0==0) ?? >c	;simply exec!  You want to see the memo, again.


	; --- initial check
	(mb==1)?? { &m("line block, please!") .}
	(xc<0)?   { &m("up -> down, only.") .}
	(xc>25)?  { &m("vertically too long!") .}	; ??? improvise!

&s
	; --- make workfile (nul)
	#k #B
	mx[+, #R "nul" #m (s)? 'y' mx],
	#i

	; --- del empty line, first, on nul file
	ps[=pr,
	#56 "\n\n" #m "\n" #m "AY"
:d	#57 (r)? >d
	ps],

	; --- clean up
	ps[=pr,
	#56 "\x ^[\s\t]+" #m "" #m "AY"
	#56 "\x [\s\t ]+$$" #m "" #m "AY"
;	#56 "\x ^" #m " " #m "AY"
	ps],

	; --- check the max length
	#^ #<
	l-,
:f	#> (lx>l)? l=lx,		;<l> max length
	#d 
	(r<0)? >g ? >f
	
:g	(l>80)? { &m("sorry! too ugly.") . }
	l--,				;<l> adjusted

	; --- check lines
	#_ #e v=ln,			;<v> line
	(l*v>1500)? { &m("too big. 22行*68桁<>19行*78桁.") . }

	; --- prep for get strings
	#_
	#s #<

	; --- get strings loop (hist work)
	ps[=p,
:a
	#b #> #G
	#< #s (r)? >b
	#<
	>a

:b	ps],
	mx[+, #C mx],			;close nul workfile

	; --- strlen2 (upto 2 nulls)
	si=p, ax=p..-1,		;return <ax> or (r)
	&i("$(56,33,DB,39,1C,74,06,46,48,74,10,EB,F6,8B,FE,47,5B,2B,F3,8B)$
	    $(DE,46,8B,C6,40,EB,01,F9,C3)")

	; --- move strings in <p> to linebuffer, w/o size info (p..-1)
	#] n=pn..-27,			;linebuffer
	&Sm(n,p,ax)

	; --- Ymenu in <p> (hist work) from <n> (linebuf)
	&01				;-- measurements
	&02 &Sm(p,r,20)			;send dummy macro (+menu header)
	p.16=l+2,			;longest string = menu width (f), 
	p.17=h,				;item num (4)
	k=2+h*2, p..7=8+k+j,		;n..7 menu size (c0),
	p[,
	p+=20, (k){ p.0-, p++, }	;nulls for rest of header
	&Sc(p,"MEMO") p=r+1,		;title
	&Sm(p,n,j)			;items after title
	p],
	&d
:c	rr[=p, &* rr], .		;exec!

01:	j=n, h-, l-,			;measure longest item,item num,all len(*)
  :a	&Sn(j) (l<r)? l=r,		;longest string <l>
	(r)? { j+=r++, h++, >a }	;num of items <h>
	j-=n,				;all the length <j>

02:	(3+$)."$(1,a,0,ff,ff,0)!01(r)$(0,e1,c0,0,f,4,0,ff)"

10:	(5+$)."$(40,06)$[1600]"

*

[4515] メニューの最大面積は?

文太 2018/09/14(Fri) 14:21
[4514]へのコメント
メニューの最大面積は?

 というテストをしました。

=== MNtest by B ===;menu size test
 以下、独り言です。
 Vz: 80*20=1600 --> 80*19
 これぐらいが見やすい。スクロールしない最大は80*19。
 スクロールを許すなら、縦スクロールのみ。

* M
50 ^^ "MNtest"

        !01 (r<0)?.
;80*19=1520	max
;70桁*21行
;69桁*22行
;60桁*25行

* P
1       "menuscan",62,25,,-1
; 横幅60、縦25
"012345678901234567890123456789012345678901234567890123456789"
"123456789012345678901234567890123456789012345678901234567890"
"234567890123456789012345678901234567890123456789012345678901"
"345678901234567890123456789012345678901234567890123456789012"
"456789012345678901234567890123456789012345678901234567890123"
"567890123456789012345678901234567890123456789012345678901234"
"678901234567890123456789012345678901234567890123456789012345"
"789012345678901234567890123456789012345678901234567890123456"
"890123456789012345678901234567890123456789012345678901234567"
"901234567890123456789012345678901234567890123456789012345678"
"012345678901234567890123456789012345678901234567890123456789"
"123456789012345678901234567890123456789012345678901234567890"
"234567890123456789012345678901234567890123456789012345678901"
"345678901234567890123456789012345678901234567890123456789012"
"456789012345678901234567890123456789012345678901234567890123"
"567890123456789012345678901234567890123456789012345678901234"
"678901234567890123456789012345678901234567890123456789012345"
"789012345678901234567890123456789012345678901234567890123456"
"890123456789012345678901234567890123456789012345678901234567"
"901234567890123456789012345678901234567890123456789012345678"
"012345678901234567890123456789012345678901234567890123456789"
"123456789012345678901234567890123456789012345678901234567890"
"234567890123456789012345678901234567890123456789012345678901"
"345678901234567890123456789012345678901234567890123456789012"
"456789012345678901234567890123456789012345678901234567890123"

*

1       "menuscan",82,19,,-1
;スクロールなし max, 80*19 (右1行アキ)
"01234567890123456789012345678901234567890123456789012345678901234567890123456789"
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"
"23456789012345678901234567890123456789012345678901234567890123456789012345678901"
"34567890123456789012345678901234567890123456789012345678901234567890123456789012"
"45678901234567890123456789012345678901234567890123456789012345678901234567890123"
"56789012345678901234567890123456789012345678901234567890123456789012345678901234"
"67890123456789012345678901234567890123456789012345678901234567890123456789012345"
"78901234567890123456789012345678901234567890123456789012345678901234567890123456"
"89012345678901234567890123456789012345678901234567890123456789012345678901234567"
"90123456789012345678901234567890123456789012345678901234567890123456789012345678"
"01234567890123456789012345678901234567890123456789012345678901234567890123456789"
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"
"23456789012345678901234567890123456789012345678901234567890123456789012345678901"
"34567890123456789012345678901234567890123456789012345678901234567890123456789012"
"45678901234567890123456789012345678901234567890123456789012345678901234567890123"
"56789012345678901234567890123456789012345678901234567890123456789012345678901234"
"67890123456789012345678901234567890123456789012345678901234567890123456789012345"
"78901234567890123456789012345678901234567890123456789012345678901234567890123456"
"89012345678901234567890123456789012345678901234567890123456789012345678901234567"
"90123456789012345678901234567890123456789012345678901234567890123456789012345678"

1       "menuscan",71,22,,-1
;横幅69、縦22
"012345678901234567890123456789012345678901234567890123456789012345678"
"123456789012345678901234567890123456789012345678901234567890123456789"
"234567890123456789012345678901234567890123456789012345678901234567890"
"345678901234567890123456789012345678901234567890123456789012345678901"
"456789012345678901234567890123456789012345678901234567890123456789012"
"567890123456789012345678901234567890123456789012345678901234567890123"
"678901234567890123456789012345678901234567890123456789012345678901234"
"789012345678901234567890123456789012345678901234567890123456789012345"
"890123456789012345678901234567890123456789012345678901234567890123456"
"901234567890123456789012345678901234567890123456789012345678901234567"
"012345678901234567890123456789012345678901234567890123456789012345678"
"123456789012345678901234567890123456789012345678901234567890123456789"
"234567890123456789012345678901234567890123456789012345678901234567890"
"345678901234567890123456789012345678901234567890123456789012345678901"
"456789012345678901234567890123456789012345678901234567890123456789012"
"567890123456789012345678901234567890123456789012345678901234567890123"
"678901234567890123456789012345678901234567890123456789012345678901234"
"789012345678901234567890123456789012345678901234567890123456789012345"
"890123456789012345678901234567890123456789012345678901234567890123456"
"901234567890123456789012345678901234567890123456789012345678901234567"
"012345678901234567890123456789012345678901234567890123456789012345678"
"123456789012345678901234567890123456789012345678901234567890123456789"

[4518] Re: メニューの最大面積は?

文太 2018/09/16(Sun) 23:06
[4515]へのコメント
 ふと、テストしました。
 やっぱ、ダメですね。

=== MNtest by B ===;menu size test
* M
50 ^^ "MNtest"
!01 (r<0)?.
* P
1 "menuscan",62,2,,-1
; 横幅60、縦25
"$[60,'0']"
"$[60,'1']"

*

[4516] Re: MemoMenu.def (v 1.00)

めざら 2018/09/16(Sun) 11:47
[4514]へのコメント http://mezala.la.coocan.jp/
> なかなかのアイディアじゃないかとか思ったのけど、しょぼいな、、、。
 いえ,色々と応用可能な部品が満載だと思いました.なので,今の仕様では「これだけ」かもしれませんが,この先,使える場面がきっと来ますよ.

 自分が Umenu.def を作ったときは「これだけ」だったはずなのですが,ものすごく沢山のマクロに部品を流用しています.ほんとに動的メニューって便利!
 で,思うのは,メニュー構築部という核を中心に,入出力のバリエーションということに収束されるのかな,ということ.一度マスターすると,本当に便利.

 そんなわけで,あまりツッコミ所は見つからないけれど,敢えて言うなら…

> (xc<0)? { &m("up -> down, only.") .}
 ちょっと懐が浅くない?って.#Bではいかんのかしら.

> (xc>25)? { &m("vertically too long!") .} ; ??? improvise!
 xcの取り得る値は,1,0,-1 だったかと……


 副産物ではないですが,Eijiro で improvise を引いたらマッチせず,imprとまで短くしてもマッチせず……で,辞書ファイルが壊れていることに気付きました.LXに入ってるのと比べてみたら,ファイルによって大きさがバーラバラ!
 双方でそれぞれ壊れているファイルがあるというオチでした.最近はEijiroを引く頻度が極度に低いにしても,どうして今まで気づかなかったのだろう.ファイルサーバを捜してみたら,そもそも元ファイルが見つからない…….orz


> マクロは「野ざらし」、という大まかなルールだったと思うので、
 い,いえ,それはルールではなくて,単にわたしの希望だっただけで….それないと,この掲示板の存在意義がほぼ皆無になってしまうので.(^o^;ははは

[4517] Re^2: MemoMenu.def (v 1.00)

文太 2018/09/16(Sun) 23:01
[4516]へのコメント
>いえ,色々と応用可能な部品が満載だと思いました.なので,今の仕様では
>「これだけ」かもしれませんが,この先,使える場面がきっと来ますよ.

 どうもどうも、ありがとうございます。考えるところの多いレスでした。

:A 何より、ほんと、その人が欲しいものって、傾向があるなぁ、ということ。
実用派だと、とりわけ。まあ、たとえばEmmettさんとかは、その傾向がかなり広範囲
に及んでいたのだなぁ、とか思いますが。寅二さんとか高橋さんみたいのは、僕は、
あまり実用派だと思ってない(別にぜんぜん悪いことじゃないですが。もー、頭あが
りませんし)、そんな意味で。
 矩形ブロック、大事ですよね。僕は読もうとしたことないけど。
 僕は、一つには検索ですね。マシン語やっても、検索だけマスターする、とか
思ってますし。
 話を戻すと、はい、満載なんかじゃないですが、でも流用していこうとは思っ
てます。m(__)m

>ほんとに動的メニューって便利!
>で,思うのは,メニュー構築部という核を中心に,入出力のバリエーション
 これですよね、ほんとに。今はしょぼいのですが(やっぱり)、ココですね。
stkhelp が検索対象として、フォーマットされたテキストファイルをもってる、
ここがすごいんだな、と。
 ただそんなにいつも辞書つくってるわけにもいかないのですけどねぇ。動的辞
書はないかな、僕に特化したので。
 (ちょっと小さくジャンプして。editfile  コレクション、統合・整理マクロ
を作ろうか、とか思ってます。自分の検索語・ファイル・コマンドラインだから、
特化してそうでしょ。)

>> (xc<0)? { &m("up -> down, only.") .}"
> ちょっと懐が浅くない?って.#Bではいかんのかしら.
 了解。宿題、やります。下から上へブロックをしたことがないもので。勝手に
禁止しました。外に出さなければ、このチェックすら、してなかったでしょう。
 お気づきだと思いますが、エラーチェック部分は後知恵でつけました。ラベル
Aから作り始めて、動いた、じゃ、エラーチェック部分かな、とか。分かってる
から、そんなチェック要らないとか思い、やがて、一人でどつぼにはまるタイプ。
明日の自分は赤の他人。あはは。

>> (xc>25)? { &m("vertically too long!") .} ; ??? improvise!"
> xcの取り得る値は,1,0,-1 だったかと……
 おほほほほ。 ありがとうございます。「どうする? 25 とかにしとこ」みた
いな気のゆるみがもろ出てる。improvise は、ここで、「tekito」と書くのは失礼
みたいな気がして、「即興せよ」という意味でした。

>LXに入ってるのと比べてみたら,〔Eijiroの〕ファイルによって大きさがバーラバラ!
 あはははは。ありますか、めざらさんでも。たまには使ってあげましょう。
 僕が思いついたのは、
 (1)エネループ。20個ぐらいの充電がやっと終わりました。たまにはチェ
ックしよう! 充電器も含め新品も買いました。4つとも高速モードで充電でき
るんですよ。たいへんにインテリジェント。evolta もできるよ。
 (2)住所録、過去ログ。僕のとこでも(?)、壊れてました。復旧に1週間
ぐらいかかりました。リードオンリーにふだんはしてるのですが、時々、メモい
れちゃったりするので。ああ、あの環境であの時、とか。そうそう、どうでもい
いことですが、ログ→住所録のジャンプマクロは当然として、住所録内ジャンプ
マクロまで書いてしまいました。 で、そのときに気づいたのは、たぶん、YASAT
さん担当部分かな、と思われるところで、タブと全角スペースのフォーマット不
正がありました。自分で書いた部分かもしれませんが。上村さんのとこが割とシ
ステマティックに。マクロを書くと、こういうのしらみつぶしのチェックしちゃ
うじゃないですか。で、気づきました。そのとき sed が大活躍。
 (3)sed って、偉いっす。そのうち、としきさんのところで。長年の課題が
解けた! >Aとか。
    使うなら、logos sed を。s/srch/repl/3 が使えます。桁的にとても大
事かと。矩形ブロックの置換みたいなものです。僕はエンバグに気づいてません。
    僕がマクロにしろ、スクリプトにしろ書くのは、相手がだいたいコンピ
ュータの出力なんだよなぁ、と思う今日この頃。使ってるのだか使われているの
だか。で、一瞬だけ、攻略の興奮に酔う。
 (4)Eijiro。 最新版は、もう SJIS ではないのですって。UTF-8?   YASAT
さんの話により、Vzの敵であると、、、。
 (5)文脈ジャンプ。MemoMenu  が欲しかったのは、こんなデータを何度も何
度も見たかったから。

----- sed.shd -----
@version2 
その他1
 version2 
 1988/03/02 06:11 15,366 OLDSED.EXE  ;serow
 1992/06/17 11:00 25,108 LSED.EXE   ;logos
 1994/06/02 19:17 70,111 SED.EXE   ;GNU 1.18 +m 1.03
                     ; \{n,m\} OK
 1999/06/20 12:41 99,854 GSED3.EXE  ;GNU 3.02 +m 1.07 (hgc02147)
                     ; stack overflow in VTDOS
 1999/06/20 13:40 90,112 sed32.exe  ;GNU 3.02 +m 1.07 (=)  ERE Perl5
 2003/05/17 02:29 86,016 egsed.exe E ;GNU 4.07        -r
 2005/02/11 11:14 98,816 SSED.EXE  E ;3.62, based on GNU 4.1 -r  -R
 2005/08/24 06:32 311,296 OSED.EXE   ;GNU 4.1.4 +Onig 2.4.2  -r  -R
 2007/07/13 09:22 159,744 mbsed.exe  ;GNU 4.1.4 (Bruce.)   -r
                     ; \{n,m\} OK
 2009/10/01 01:45 278,528 onigsed.exe ;GNU 4.1.5 +Onig 2.5.0  -r  -R
-------------------                       ^^^^^^
                                 注意

> 双方でそれぞれ壊れているファイルがあるというオチでした.最近はEijiroを引く
>頻度が極度に低いにしても,
 たまには引いてあげましょう、アゲン。文太のマクロ(コメント)も何かの役
に立ったか。☆\(^^;)

>い,いえ,それはルールではなくて,単にわたしの希望だっただけで….
 いえいえ。細かく深いコメント、多謝です。ま、ルールとか言わずとも、その
ときの雰囲気で臨機応変に。
 私めは渡り鳥。ぶんちょう。

[4519] Re^3: MemoMenu.def (v 1.00)

めざら 2018/09/18(Tue) 23:50
[4517]へのコメント http://mezala.la.coocan.jp/
> MemoMenu が欲しかったのは、こんなデータを何度も何度も見たかったから。

 なるほど.見るだけなのですね.メニュー表示中は見ながら書くこともできないけれど,ぱっと見れば済むものもありますよね,確かに.

>  たまには引いてあげましょう、アゲン。

 ですけどね.昨今はネットの辞書が引き放題で,しかもシソーラス化が進んでいるので,これが辞書読み好きにはタマラナイんだなー.なにしろ索引を作っていないベタのテキスト辞書を引くのはひどく待たされますしね.
 英辞郎v58辞書の原本が見つかったので,27分割したところ,壊れていたのは結局 i だけではありました.LX用の辞書は確か,3語以上の複合語をカットするようにGrepで出力した辞書だったので,その過程で壊れていたのかもしれません.
 分割作業中にテンポラリファイルエラー出まくり.でかいファイルを扱っていると,たとえリードオンリーにしていても一定の作業を繰り返すと陥るのかな.どうにもならなくて,後半はxyzzyで切り分けました.


 今日は祝日勤務の代休で,数週間ぶりに畑の草刈りをしました.繁忙期とそれに続く反動期を口実にして,実際何をやる気力もしばらく起きなかったのですが,今日からアレコレいそがしく始めることになるでしょう.双極性も実は半ば混濁しています.鬱期は常に口実を探しているだけ……と考え言えるようになるのも躁期に向かっている証左と言えなくもない…のかも.(はっきりしねぇな)

>  私めは渡り鳥。ぶんちょう。

 わたしはなんだろう.ネコでもカエルでもいいけど,旅したいーー

[4520] Re^4: MemoMenu.def (v 1.00)

文太 2018/09/19(Wed) 12:43
[4519]へのコメント
>躁期に向かっている証左と言えなくもない…のかも.(はっきりしねぇな)
 あはははは。不謹慎、不謹慎。で、でも、これ、すごく受けてしまった。

 今日はいい日。さて、どう時間配分しようか……。ダイコンにネットを
かけるのが最初だな……。6年目の種、芽がでました。種袋の種ぜんぶ、
使いきりました。v(^^)

 閑話休題。

 そんな大きなファイルを、エディタで何とかしようとするのは……。

--- eijicut.sed ---
# >Onigsed -f eijicut.sed eijiv58.txt 
1,/^■A/Iw 0.ejr		#1行目から■Aまで
/^■A /I,/^■B/Iw A.ejr
/^■B /I,/^■C/Iw B.ejr
中略
/^■X /I,/^■Y/Iw X.ejr
/^■Y /I,/^■Z/Iw Y.ejr
/^■Z /I,$w Z.ejr		#■Zから$(最終行)まで
-------------------

行数指定,/regex/
あるいは
/regex/,/regex/
 のアドレッシングで範囲指定して、

//I のフラグで、ignorecaseして(serow sedにはきっとない-注-)、

w (write) A.ejr (出力先ファイル)指定

 こんな感じで。

 次回はないか?
 (テンポラリーファイルエラーの連発くうと、鬱になりますよね。ボソ)

-注-:serow版で対処するには、きっとignorecaseフラグなんてないだろうから、
   テキストのフォーマットをよく見て、正規表現を工夫するしかないでしょう。

1,/^■[Aa]/w 0.ejr		#1行目から■Aまで
   これで足りるのかは、やってみないと。
   大変すぎるので、Onigsedで。


eijiro.org  171,258,595  2016-01-09  10:32
 これがS-JIS最終版に近いもののサイズ。タイムスタンプはあてになりません。
 でも、これくらいかな。v.141ぐらいだったような記憶?
 最新版を買って、UTF-8とやらについて教えてください。

 僕は、上の範囲指定を
/^■AC/I,/^■AD/Iw AC.ejr
 みたく、頭2字にして、110個くらいのファイルに切り分けているみたいでした。

ac.ejr  1,282,942  2017-03-29  23:06
 一つが、これぐらいのサイズ。

 切り分けは、スクリプトファイル4つをバッチで次々動かすみたい。

 これだけしてあると、すいません、はしたない自慢ですが、検索は一瞬です。m(__)m

 LXで全ての作業をすると、きっとスリリングな3分とかを経験できそう。
 「仕事中なの? それともハングしたの?」みたく。sedは非対話型。

 やっぱり母艦のパワーのあるWindowsマシンで、Onigsedを使ってというのが
オススメですね。

小物マクロの住所録 2009/01
nifty:FGALDC/MES/02/
03037  文太		WAEI.DEF(謹賀新年)
03052  文太		WAEI.DEF
03088  文太		英辞郎切り分け法
03089  文太		eiji.def (v.0.1)

 この辺りにあるはずなんですが、ログの復旧が済んでなかった! く、くそう。
鬱&ブルー。ど、どこだ?

 最後に。
 英辞郎は立派です。そんなに新語でもない表現で、「これって決まった言い方
でしょ」(独立単語の連なり以上イディオム未満)というを、出すことができた
のが英辞郎だけ、ということが3回以上ありました。(不必要に細かくいうと、
例辞郎の例文中において、という意味です)
 日本人の辞書作りにかける情熱は、世界一です。

PS: 旅、しましょうよ。僕は2月ころ、毎年、むしょうに旅に出たくなります。
PPS: 「壊れていたのは結局 i だけ」 improviseの呪い。あるいは僥倖。
 「いまや i で始まる単語も引けます!」
  占い師いわく「思いつきの行動を運命が求めているようです。衝動的に
  行き先も決めず、旅に出るなど」(improvise)

[4521] 英辞郎とnozlog

文太 2018/09/19(Wed) 20:38
[4520]へのコメント
 ふぉふぉふぉふぉふぉ。

#03088 文太 英辞郎切り分け法

 これでいいでしょう。nozlogのことでした。
 2009年にさあ、FGALDCとかやってませんよ、もう。
 その後のログ管理、いいかげんなんだよなぁ。シオシオ。
 いろんなところで、システムが破綻しておる!
 く、くそう。システムを作り直してやる、、、、く、く、く、く。
 時間がないんだってば、今は。シオシオ。

>01113/01113 SDI00000 中島 ○     フォーラム終了のお知らせ
>( 2) 05/01/12 10:26

>■■■■■■■■■■■フォーラム終了のお知らせ■■■■■■■■■■■

 FGALDCは、2005年に終わってますよ。やれやれ。

 自分のところにログあるんだから、見つけてくださいよ。そんな大きな
ファイルをエディタで切り刻むようなことしてぇ。
 罰として、英辞郎の最新版を買って、UTF-8をVzでどう処理するか調べて!
それまで旅は禁止! improviseも禁止!
 完全な八つ当たりモード。

 プール行ってきまーす。
 情けなかぁ。

[4522] Re: 英辞郎とnozlog

文太 2018/09/20(Thu) 01:59
[4521]へのコメント
>英辞郎の最新版を買って、UTF-8をVzでどう処理するか
 blogjumpは飛んでくれませんが(分からにゃい、でかすぎだよ、あのマクロ)、
NIFTY閉鎖後のログは大まかに整理しました。秀丸のお世話になりました。
 「テンポラリーファイル・エラー」ブルー。

 そして、UTF-8 -> SJISへの変換は、nkfでできるみたいなことも了解。
 来年度になったら、英辞郎の最新版を買います。
 eiji.defの完成版が、HDフォーマットで失われていることも判明。くくく。
立川で焼肉をくったときには、あったのにぃ
 実務的には、もっぱらDDWINなもので。英辞郎をEPWINGにして、DDWINで引く
方法はありますよ。ネットで足りますね。シソーラスはないです、はい。

 腹がくくれたので、
>それまで旅は禁止! improviseも禁止!
 これは取り下げます。旅にいって来てください。旅先で人格豹変させて、もう
トリックスター。寅さんみたく、超無責任だけど、持ち前に熱さで、人生を
おおいに楽しんで来る!

 (そうもいかない場合には)
 お庭の雑草抜き、暑さは引いたようなので、のんびりやると、なごみますよ。
もう奴ら体力ありません。弱っていくところを突く。卑怯な行為ではありません。
自然の摂理です。
 毎日、ちょっとずつ変化するんですよね、庭。ダイコンの種は蒔きましたで
しょうか? そんな時期ですよ。

 あー、片付けが進まない。やばい、やばい。
 ダイコンにネットを掛けることすらできなかった。
 明日、というか今日、やる。

[4523] Re^2: 英辞郎とnozlog

文太 2018/09/20(Thu) 23:21
[4522]へのコメント
>blogjumpは飛んでくれませんが
 飛びましたぁ、飛ばせましたぁ。簡単じゃん。すっげえコード、涙ぐましいコードを発見してしまったけど、それもfixします! ま、動けば正義ですけどね。
 ふん、もう、あんな恥ずかしいミスはしない。しかしですよ、いつか、めざらさんがあれを必要とする、と占い師は知っていたわけです。improviseすることが必要な場面がやってくるだろうと知っていた。感謝するように。そして、英辞郎の最新版くらい買うように。
 奥ゆかしくエールか励ましかを送っていたり、ムチを送っていたりしてるだけなので、ほっといてやってください。勝手な奴なのです >文太。
 さあ、本気でブルーで残酷な季節だぞ。

[4464] Re^2: CleanPS.def (final)

konno 2018/08/13(Mon) 20:15
[4461]へのコメント
皆さん、お久です、暑さで脳が溶けてました。

> まずひとつ反応しておきますと,〈グローバルまたぎ〉.
> これは VZ のコール/ジャンプの「ルール」(mac16.docに記述)に沿えば
> まったく問題なく,行儀が悪いことにはならないと考えています.
> ・実行位置以下のモジュール内を,ローカル/グローバルを問わずサーチ.
> ・見つからなければマクロバッファの先頭からグローバルのみサーチ.
> 少なくともプッシュ/ポップがまたいでいるより遥かに行儀よい(^-^;

これは萎びたシナプスのリハビリにちょうどいいいテーマですね。
実のところ、私は他人のマクロをパクって改造しかしてないので
こういうVZ流の構成とか流れを意識してないんですね。

> 例えば,榊原知さんの究極の名作「いきなりブロック」(注:手元の環境)
> 例えば,上村郁夫さんの痒届(何)名作「他画面スクロール」(注:手元の環境)
> 例えば,手前味噌ですみません.(名作と並べるなっての ^^;)
> ;= ^QF.def = H_ear mp0常用者のいきなり検索・次検索

これまた的確な例題ばかりで。
共通のローカルルーチンを各グローバルマクロから呼ぶ発想は
VZマクロならではですね。

> うーん,イミディエートサーチか…
> いきなり検索よりネーミングかっこいいな

# 意味でエイッとサーチ

べ、別に、これを言いたくて書き込みしたわけではないですからぁ。

[4463] Re^3: 第二の置換

めざら 2018/08/13(Mon) 16:15
[4458]へのコメント http://mezala.la.coocan.jp/
> 「後優先」はエライです。

まことに.
組み込みやすさでVZの右に出るものはないのは,こういった仕様のおかげ.

>  aa とかの2文字変数をフラグにして、再検索で #F (aa)? #e とすれば

汎用変数を使うくらいなら,どうせ自前バッファがあるのだから,
そこに保存しちゃえばよいのではないかとも思います.

逆に,「使い捨て」なのであれば,ユーザ変数だって使い捨てでよいと思うし.
この自由度が「動けば正義」の世界.

ごめんね,別に添削とかいう意味じゃなくて,
3バイトほどマクロバッファが空くなと思って.

ps], がふたつあるので整理すれば3バイト節約できるなと思っていたら,
次の版では :z ps], に飛ばしてますね.気にしたんだ.(笑)

[4466] Re^4: 第二の置換

文太 2018/08/14(Tue) 15:15
[4463]へのコメント
>汎用変数を使うくらいなら,どうせ自前バッファがあるのだから,
 ちょっと違うかなぁ、という感触です。マクロバッファが一番不定ですから。すぐ消えちゃうので。stkhelp一発で、たいていのマクロは再ロードになります。このCleanPSだと、再カスタマイズのなので、なおさら辛い。
 もっとも、そうなると、ヒストリーの文字列も消えちゃうのだけど、、、。いえいえ、#F#r のコマンドが2つ多くできたのが偉いの。運がよければヒストリー機能もあるよ、と。
 Bvのところ、pq.145というのを愛してます。2文字変数より、もっと確実。こういう場所って、他にないかしら? 現在、Bv==128 bytesなのですが。これを大きくするのかなぁ?

>ごめんね,別に添削とかいう意味じゃなくて,
 いえいえ、添削は期待できない歳ですが、何か言ってもらえるのはありがたいですよ、この歳になっても。

>3バイトほどマクロバッファが空くなと思って.
 ま、気にすべきなのでしょうけれど、でも、どうせ小さなマクロだし、、、。&00 -> &> とか、k1&ksとか、しましたが、分かりづらい、、、。2年後には、分からなくなってるでしょう、、、。

>次の版では :z ps], に飛ばしてますね.気にしたんだ.(笑)
 というか、出口は1つにするものだったでしょう、と思い出しました。そのほうが読みやすい! そうしたら、下に同じのがあった、、、。

 ありがとうございます。
 しつこいけど、このマクロは久々のヒット作。多謝でありまする。

[4470] Re^5: 第二の置換

文太 2018/08/15(Wed) 22:36
[4466]へのコメント
めざらさん

 フラグを自前バッファに持つという話ですが、いやいや、真剣に考えたら、これ、深かった。
 欲しいもの、自分の実力で手に入る(作れる)ものについては、イメージがあるし、きっと完成したのだろうと思ってます。
 いつもで#eしてしまえばいいのだ、という結論(フラグ判断不要)。連続実行はcmで判断。

 ただ発見は、検索窓の#eには返り値がなく、そして#F窓をキャンセルしてもSモードに変化せず、空打ちでも変化しない。検索文字列の設定に成功してはじめてSになる。すると(そんなことあるはずないのですが、たぶん)、場合によっては、Pモードで#rしちゃう。すると一画面上というとんでもないところへ行ってしまう、そして、フラグだけVzのお腹の中に残っていてもヒストリーバッファ(自前)がなくなっていたら意味ないし、、、などなど。
 抜本的にやろうと思ったら、やっぱり自前バッファでなくpaとかを使うしかないけど、そんなの他のマクロが使いまくるし、、、。

 途中でstkhelpとかぜったいに起動しないからね、という場面で使うもの、と本当の「使い捨て」ではないけど、あくまで目の前の作業用と割り切らなくちゃなんだな、と思いました。
 うん、すとーんと1回だけだけでいろんな処理が済むものと、何回も続けて使うつもりのもの(広義に連続実行的に)。これは最初から峻別して構想するべきなのだな、と。
 ワークファイルというのはやっぱりけっこう偉いものなんだな、とさえ思いました。YASATさんが、まだメモリを使えない僕に、「でも、ワークファイルって最大のバッファですよ」と言っていたのが思い出されてしまいました。とろくはなるけど、ファイルに書き出しておけば消えませんしVzの変数もバッファも圧迫しませんからね。ここまで後退できる文太。
 深かったです。ありがとうございました。

 蛇足:どうしても自分用のバッファが欲しければ、EMSを使え、というのも思いつくだけ思いつきました。嘘だろ。マクロファイルをオープンしっぱなしにしておけばいいだけ。またマクロバッファからなくなってるのかよ。再カスタマイズ。これでよし。
 蛇足2:最終版CleanPS.defには、文字列吐き出し機能をつけました。あほ。でも、自前バッファのアドレスって同じマクロからしか、容易には参照できませんよね。

[4475] Re^6: 第二の置換

めざら 2018/08/19(Sun) 09:15
[4470]へのコメント http://mezala.la.coocan.jp/
深いも深いのですが,それ以上に個々の環境がひどく異なる上に VZ 特有の「手抜き」が絡み,そしてさらに個々の思い入れがそれ以上に異なるというところが,算譜制作の面白難しいところでありますね.こればかりは「自分ならこうするけど」とまでしか言えない.

端的な例として,実行速度と保守難度(VZの場合,コードの短さと読み易さの対比になることも多い)なんてことも,個々の感覚だったりしますし.

YASAT さん,懐かしいですね.結構会議室(注)の終盤ちかくまでお付き合いしていただき,文字コードのことでも色々教えていただいた.

文字コードに興味を持つ(…と言うかこだわりのある)人は,どんなことにもこだわりが強くてキッチリしている印象があるのだけれど,いろいろなことに広く興味を持って懐の深い人でしたね.一時期,「小物マクロの住所録」を手伝っていただいて,貴重な時間をそんなことに浪費させたという申し訳無さを感じていました.

わたしは流石にワークファイルまでは手が出ないなぁ……と言いながら,自分の作っているマクロも,外部ファイルを使いまくりだったりして.マクロバッファをケチるということもあるけれど,保守のしやすさとか拡張のしやすさとか.

[4479] Re^7: 第二の置換

文太 2018/08/20(Mon) 20:43
[4475]へのコメント
:A
>深いも深いのですが,それ以上に個々の環境がひどく異なる上に VZ 特有の「手抜き」が絡み,そしてさらに個々の思い入れがそれ以上に異なるというところが,算譜制作の面白難しいところでありますね.こればかりは「自分ならこうするけど」とまでしか言えない.
 至言としか言いようがない。半分、僕が考えていたことと、どんぴしゃり。気持ちがいい。
 どうでもいい話。アメリカにケイト・ショパンという女性作家がいます。僕の守備範囲の時代の小説家なんですが、おそろしくピンとこない人でした。女性主人公の不倫小説『目覚め』で有名。女の子にすごく受けてました。「あれ、ぜんぜん分かんないですよ」と恩師に言ったら、「やっぱ、女には女の感性があって、内にあるものにどんぴしゃの表象(表現)を与えられると、快楽が生じるみたいなんだよな」と教えてもらいました。そんなことを思い出しました。


>YASAT さん,文字コード。
 こだわってる人、けっこういましたね。ちょっとずれて、文字番号とビットは基本だなぁ、と思う今日このごろ。なんで、#< '<'から? とか、マクロの起動キーで特殊なのは、^\[]_@だけなのかぁ(#00)、など(ちょっと通じないかな。反転して飛んでます)

>わたしは流石にワークファイルまでは手が出ないなぁ
 使い捨てバッファでなく、保存領域。tmpbuf(0-2)など「使えるのはこれだけだけど、でも、データの保存なら自前バッファがいちばん」(m.gann)というのがありました。ただ、自前バッファ(マクロバッファ)がぜんぜんあてにならないとすると、ファイルに書き出しだな、と思っています。そんなこと考えたために泥沼状態。でも、(新発見)ラムドライブにワークファイルつくれば、ほとんど、メモリに保存と変わらないよ、きっと、やってみよ、やったみよ、とかなってます。>A
 貧乏症で使いもしないもの溜め込むタイプなんですよねぇ……。

 サイトの更なる更新(!)楽しみです。#00も、まだあるの? m(__)m
 「演算式」に豊富なサンプルがほしいですねぇ、とりわけ「=」の省略とか「~」とか。誰を対象にしたサイトか? となりそうですけれど。

[4486] Re^7: 第二の置換

YASAT 2018/08/21(Tue) 23:05
[4475]へのコメント
すっかり過去の人にされてる(^^)
まあ否定はできないわけですが(^^;

おそらく世界で唯一のcalendar.defのメンテナなので、
オリンピック前には最新の休日に対応させようと思ってるのですが、
DOS機からWin機へデータを移す経路が途切れています。
どうしよう…

[4488] Re^8: 第二の置換

文太 2018/08/22(Wed) 01:12
[4486]へのコメント
 うそ、マジ?
 calendar.def, 質問しちゃおうか? うそうそ。
 おじさんは、泣いています。涙もろくなってしまってねぇ。
 200回教えてもらって、3回ほめてもらいました。200分の3ぐらいしか覚えてないけど、3分の3は覚えています。
 DOS -> Win ? フロッピーが必要なら、送るよ。「あるよ」。DOS 機をいまでも作ってる文太でした。
 『ジーニアス』は元気でしょうか。
 ヤスくん、元気だったんだね、うん、うん。blogjump、まだ使ってるんだよ。もう読めないけどね。

[4498] Re^9: 第二の置換

YASAT 2018/08/24(Fri) 21:24
[4488]へのコメント
そんなにいろいろお教えしましたっけ?
もう記憶がおぼろげなんですが、間違ったことをお教えしなかったか心配です。

オリンピックどころか来年改元だからそれにともなう対応が必要でしたね。
まあデータを移すのは何とかなると思います。
お気遣いに感謝。

[4491] Re^8: 第二の置換

めざら 2018/08/22(Wed) 10:07
[4486]へのコメント http://mezala.la.coocan.jp/
> すっかり過去の人にされてる(^^)

きゃー,見てたのね!
お久しぶりです.近頃,仕事絡みでもUTF-8になりつつあって,JIS X 0213 を顧みる機会もなくなってしまったのですが,HP200LXには対応フォントが入っています.

ときどき落書きでよいので,チャチャを入れに来てください.
よろしくおねがいします.


「過去の人」扱いに汗がないんだから…….

[4499] Re^9: 第二の置換

YASAT 2018/08/24(Fri) 21:30
[4491]へのコメント
ご無沙汰しております。
最近はすっかり堕落してしまって必要な資料などはEvernoteにぽいぽい放り込んで済ませたりしてます。
スマホにアプリを入れておくと新聞のスクラップも楽になって便利。
エディタ? 何それな近況。

↑ このページの先頭