記事閲覧

− 野ざらし言 −

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


返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

おなまえ :
Eメール :
タイトル :
メッセージ: 通常モード(推奨)  整形モード(非推奨)  preモード(空白再現)
※ プログラムコード等を含まない場合は,できるだけ通常モードをご利用ください。

参照先 :
暗証キー: (英数字で8文字以内) プレビューなし


- 以下のフォームから自分の投稿記事を修正・削除することができます -

処理 記事No. 暗証キー