新着記事

− 野ざらし言 −

新規投稿は記事一覧のフォームからお願いします

[4530] ゾンビのその後

文太 2018/09/30(Sun) 17:52
[関連記事] [4526]へのコメント
 メモ書きの独り言です。m(__)m

======= ゾンビ.DEF by m.xxxx =============================;伏字に意味ある?
PK13 #00310 92/08/04 22:53
1 ^K^ で登録したあと、まず、 ^^ で92番のマクロを実行します。何度実行
 しても「92番を実行しました」というメッセージが出ることを確認しておい
 て下さい。
2 次に、^\ で93番のマクロを実行し、何かのキーを押して終了させます。
 何度繰り返しても、同じであることを確認しておいて下さい。
3 93番のマクロを終了させた状態で、ふたたび ^^ で92番のマクロを実行
 します。
  すると、どうでしょう。 ^^ で92番のマクロを実行したつもりでも実際に
 実行されるのは93番ではありませんか!!

*m
92 ^^   ""
        a-,
:A      (a)>?{ #26 #27 } (a++<16)? >A
        &m("92番を実行しました") &b(3)

93 ^\   ""
        i-, (-1){
                &m("93番の実行中%4d%-32s何かのキーを押すと終了",i++,"")
                &b(3) &w(15) &k (r)? >B
        }
:B      &m("93番を終了しました")
*
======= ゾンビ.DEF =======================================

 メモです。何となくやってみようと思っただけです。それほど深く追いかけては
いません。
 上は再現しないと思う。

>「(-1){」の「{」が生きたままマクロが終了しているということではないのかな?
 というのが、くらとさんの回答。


--- 長すぎる引用、ごめんなさい、ありがとうございます >m.gannさん
 無限ループはもちろん、有限ループの場合も途中でループを脱出した場合は、
「ゾンビ」の要因が残されてしまいます。
 ほとんどの場合は、それが顕在化せずに済むわけですが、低い確率で引き金が
引かれることがあります。「{」よりも「}」の方を先に実行してしまった場合が
そうです。
 ループカウンタが初期化されていない状態で「}」に出会うと、仕様通りルー
プ開始ポインタへジャンプします。「}」はまさにジャンプコマンドなんですね。
 蛇足ながら、ループ開始ポインタへ飛ぶ場合、そのマクロがたとえ上書きされ
消滅していてもそのアドレスへ飛び、あるいは飛び先でのマクロ・ラベルジャン
プが不定となるなど、予想できない動作となる可能性があります。
 引き金となるのは、多重分岐文でしかも(式)の値が限定的でなく、「}」へ
ジャンプする可能性がある場合です。
---
 (対策は記事の続きをどうぞ)
 常識的には
 ・無限ループは {} で脱出。
 ・多重分岐は数をきちんと数えよ
 でしょうけれど。

 で、「再現しませんよね」で僕が思うのは、高橋さんが、「ループカウンタの
初期化」をするように「バグフィックス」(?)してくれたのではないかしら? 
空想です。

 じつは、
; from ygear.def top
	(s)>?{ >A . >A >A . } .
 sに5はない。しかし「ゾンビ現象」で、} に実行ポインタが飛んでくる
可能性はなくはない(たぶん)。その場合にも、} のあとの「.」で止まる。
深慮というより習慣なんだろう、とか。
 そんな安全策かなと想像していて。

 高橋さんの何かで、ゾンビが完全に殲滅されたのだとは、僕は思っていません。
何しろゼロ戦Vzですから。

 そして、
(r)>? {.. (a=2,b=3) (a=3,b=4) (a=4,b=5) ...}
 みたいには書けるのね、と発見。誰もやってないみたいなんですが(僕のvzdef
ディレクトリ内)、大丈夫ですよね?
 この手のことは、ygrepの正規表現&特殊文字では、うまく指定できないの。
 すぐGarbled commandとか言うし。

 台風です。そろそろ都内で電車がいっぱい止まります。宮崎はどうなったでしょうか?

[4529] 過去ログの大きさ?

文太 2018/09/26(Wed) 15:45
[関連記事] [4526]へのコメント
過去ログの大きさ?

 どれくらいの量の情報だと思いますか。
 答え、ものすごくアバウトに、文庫本80冊程度でした!

 m.gannさんのは、中身がわからずに2回ぐらい目にしたことがあった
ような感触ですが、Emmettさん記事は、たぶん、本当に初めて。
 いっぱい知らないことって、あるんでしょうね。
 簡単にどう計算したか。

>dir /s 			;AP, PK, DCのログディレクトリで
>Izgrep -i "LOG"		;xxx.logのみ。-- ignorecase
>Izgrep -v "ディレクトリ"	;vzlogなんてディレクトリだったもので。
				;ゴミ削除。-- versaの意味かな。

;awkが計算できないというので、byte -> KBへ、3桁カット(矩形ブロックマクロ)
>Jgawk "{total+=$3} END {print total}"
;結果:19145 KB
;文庫本を原稿用紙300枚とし(厚め)、原稿用紙は400字==800 bytes
;インスタントマクロで、掛け算と割り算。19145/240=80

 色々あると思うので、70冊から90冊のあいだのどこか、ぐらい?
 (ish部屋とかも入ってます。)
 ふう、それは読めんわ。
 そして、Vzマクロの貴重な情報というのは、Vzのソースばかりか、
あの膨大なVzマクロ作品のコードにも入ってるんですよね。

 榊原さんが言ってたとおり、* * のコメント機能は、コードが読めなくても
明らかなc.mosさんの意図と分かります。see macro.asm.
 やっぱ使うか。でも、ヘタに背伸びすると、無意味にバグらせそう。

[4528] Re^2: >? の分岐について

文太 2018/09/26(Wed) 15:43
[関連記事] [4527]へのコメント
>5のときは結果も異なります.
 ほ、ほんとだ!
 とはいえ、この場合には、(s)>? なので、害はないですね。
5がない。
 しかし、いつも (s)とは限らないので注意します。
 たしかに違う。
 ありがとうございました。実に、1ミリの隙もない、
200%的確な指摘でした。

>(このコードってどこから?)
 konnoさんのところの、#8121 からです。
 大元はm.gannさんで(きっと)、lfをm.gannさんがいじった
のではないでしょうから、としきさんのアレンジだろうと思い
ます。

 お大事に。m(__)m

[4527] Re: >? の分岐について

めざら 2018/09/26(Wed) 10:12
[関連記事] [4524]へのコメント
http://mezala.la.coocan.jp/
> >?{ #Y .. * }. *
>  上は、
> >?{ #Y .. * .} *
>  これと同じ意味ですよね? なぜ、中カッコの外にピリオドを置くのか?

 意味は違いますね.内部レジスタの値が3のときは「* … *」が結果的にコメントとして解釈されて同じですが,4のときは「ループの終了+外のピリオド」と「内側のピリオド」という停止に至る過程が異なります.「実行結果」という意味では同じですが.5のときは結果も異なります.(このコードってどこから?)

 真剣に検証すると色々出てくるのかもしれませんが,エネルギーを必要としますから.ごめんなさい,躁期に入って労働意欲(畑仕事に限る)は出てきたのですが,不眠と便秘がセットで到来して思考意欲が極端に低下中なもので……(^^;

こんな体調の日に遅番は辛い.

[4526] 「ゾンビ現象」

文太 2018/09/25(Tue) 22:31
[関連記事] [4525]へのコメント
 一人相撲でごめんなさい。VzFAQネタに、どうぞ。

m.gann氏, 92/8/5, <nifty:FGALPK/MES/13/318>

 このあたりだ。本当に、}に当たる。そして、それは確率は低いとはいえ、
とんでもない現象を引き起こす可能性がある。
 分かりました。多重分岐で、}に当てることのないよう気をつけます。
 そんなところに当たっているとは、ゆめゆめ思わず、、、。
 やっぱ無限ループと同根なんだ。

>? {.....}
 とちゃんと数さえ間違えなきゃ、いいんですよね。
 ま、怖いから。
>? {....}.で、困らないときには、忘れなければ、こうします。

 いちおう報告。

mg..4=3,
(3)>? {...}
&m("%d",mg..4)

mg..4=3,
(4)>? {...}
&m("%d",mg..4)

 なんてやってみたけど、分からず。もしかしたら、「Vzトークン覚え書」の
「 } 」で、もっと濃ゆい説明とかしちゃってもいいのかも、、、。

追伸:知ったかぶりをするつもりはまったくないのですが。

(3)>? {>a>b>c
 単体だとエラーになり、

 この下に別マクロであっても、} があれば、エラーにならなかったとき、}に
鍵がある、とは思ったんですよねぇ。もちろん、全部は消化できてません。
 ただ、少し本気で納得した、という感じです。{}がお祈りとか、{ だけでいいとか
言われると、え、m.gannさんって、そんな審美的な感じであのコード書いてたの?
とか思ってしまっていたもので。

[4525] Re: >? の分岐について

文太 2018/09/25(Tue) 21:33
[関連記事] [4524]へのコメント
 すいません、諦めると、見つかってしまうのですねぇ。

 引用です。
--------------------------------------------------------------------------
Emmett氏, 95/8/27, <nifty:FGALPK/MES/15/1837>

        (a)>?{ . . . }   &b (2)
               0 1 2 3   4  5
 この } が、 (0から数えて)3番目に位置する、独立したひとつの命令だと見
  なされてしまうというところです。 多重分岐を実行する場合、VZは { の次か
  ら単純に、0、1、2と数えて行って、内部レジスタの値に相当する位置にある
  命令を実行する……
 のかと思うと、 それじゃぁ例えば a==5 の場合は &b をスッ飛ばして (2) だけ
  を実行するかと言うと、そうじゃない。a==4 以上の場合は a の値が幾つであろ
  うと、ちゃんと &b から実行します。
--------------------------------------------------------------------------
 (ちょっと引用長すぎると感じてます。ごめんなさい。)

 後半なんかは、上のマクロの挙動(AAA)と完全に一致する。
 しかし、閉じカッコに当たっているのだ、と証明できるマクロのサンプルが
思いつかないのです。3,4,5,6,7 ....で、ビープなってしまいますよね。
 そこに当たってるの? とただ、驚き。

 どうやって3番目が &b でなく、} だと確認できるのでしょう?
 3と4でヒット箇所(!)が違うから、違う挙動を示してくれるマクロって、書け
ますかね? だって、3なら4をしちゃうのだもの。(逆に妄想ですが、これをc.mos
さんは見切っていて、こんな仕様にした、とか。でも、m.gannさんは、そこに危険
を見た、、、。)
 Emmettさんを疑っているわけでは、まったくないのですが。
 あらゆる状況証拠は、Emmettさんの書いていることを支持してはいるのですが。
もっと難しく、ソースからピンポイントにいうと、榊原さんの指摘、ということになる
でしょうけれど。
 結論は最初から分かっています。ふつうに>? {....}と、中に書けばいいじゃん、と。

 でも、m.gannさんはぜったい偏愛してると思う。m.gannさんの、vzfl_g2.defとか
さっき見ちゃった。16階、ish部屋でした。vzfl.defにFキーがいっぱい。なるほど。
しかし、[F01]は使ってない。まずのかなぁ。

[4524] >? の分岐について

文太 2018/09/25(Tue) 17:42
[関連記事]
めざらさん

 >?{ #Y .. * }. *
 これを見たときから気になっていて、諦めの良い僕としては、このような書き
方する必要は、少なくとも僕には、ない、と結論したのですが。
 ほんとうは諦め悪いのか、せっかくかなりしつこく引っかかったので、質問だ
けはさせていただいてしまおうかと、まことに勝手ながら思いました。
 何かコメントを頂ければ幸いです。

 上は、
 >?{ #Y .. * .} *
 これと同じ意味ですよね? なぜ、中カッコの外にピリオドを置くのか? そ
して、しかし、どうも、誰もこれに関して、言葉にして疑問を呈したことがない
みたいなのです。「誰も、ない」の部分は、自分のグレップ力にそれほど自信が
あるわけではありませんが。
 網羅的に調べたわけではありませんが、上村さんは、下の正統的なスタイルでした。
そりゃそうだろうと思いました。

=== Macrotmp by B ===;
* M
50 ^^ "Macrotmp"

	i=1,

:A	i++,
	(i==5)? .
	(i)>? {#d #s} >a>b>c .	;カーソル移動コマンドは無意味。ダミー。

:a &?("A") #m >A
:b &?("B") #m >A
:c &?("C") #m >A

*
答え:
A
A
A
となる。

 こんな性質を「利用」してるというか、面白がっているというか、というとこ
ろなのだろう、と思ってます。古くは、N.Myaaさんが使われ始めたみたいでした。
 カッコの外にだすと、「終わるぞ」と強調しているみたいに、見えなくはないけど……。

 これは、無限ループの罠(ループカウンタが残ってしまう)とは別の事柄です
よね。

 * * のほうについては意味は分かっています。こちらも、わざわざそんなこと
をする必要はないよ、と結論したのですが。

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

文太 2018/09/20(Thu) 23:21
[関連記事] [4522]へのコメント
>blogjumpは飛んでくれませんが
 飛びましたぁ、飛ばせましたぁ。簡単じゃん。すっげえコード、涙ぐましいコードを発見してしまったけど、それもfixします! ま、動けば正義ですけどね。
 ふん、もう、あんな恥ずかしいミスはしない。しかしですよ、いつか、めざらさんがあれを必要とする、と占い師は知っていたわけです。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も禁止!
 これは取り下げます。旅にいって来てください。旅先で人格豹変させて、もう
トリックスター。寅さんみたく、超無責任だけど、持ち前に熱さで、人生を
おおいに楽しんで来る!

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

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

[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も禁止!
 完全な八つ当たりモード。

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

[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)

[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で切り分けました.


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

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

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

[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']"

*

[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を引く
>頻度が極度に低いにしても,
 たまには引いてあげましょう、アゲン。文太のマクロ(コメント)も何かの役
に立ったか。☆\(^^;)

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

[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^;ははは

[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"

[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]"

*

[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 に返される。

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

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

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

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

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

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

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

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

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

貧乏ヒマなし.

↑ このページの先頭