| 00124 98/11/09 15:02 | RE:00120 ddewaitadviceコマンドについて |
| 投稿者 : とほほ | コメントを投稿する |
‖> マクロサーバはもともと、秀Term用に作られたものではありません。 ‖> 秀丸エディタでの、マクロ処理でできない部分を補うために作成されたも ‖> のだと聞いています。 ‖> 従って、マクロサーバを作成したのは斉藤さんではなく、秀丸エディタを ‖> 作成した人です。(名前忘れちゃった(^-^;) あ、なるほど、そうですかわかりました。ありがとうございます。m(__)m まだ、スクリプトの勉強を始めたばかりで人の作ったスクリプトを見てDDEの コマンドを使ったダイアログは非常に便利だな、とは思ったのですが、いざ 自分で作ってみようと思うと中々理解が進みません(^^; また一連のお話の中で、DDE コマンドを間違って使うとシステム全体にも負 担をかけてしまう、と言うお話があったように見うけられましたが具体的に こう言う事には注意した方が良い、と言う事はありますか? なんか、ついでの質問の様で恐縮です。(^^; とほほ |
| 00125 98/11/09 16:22 | RE:00115 ddewaitadviceコマンドについて |
| 投稿者 : となりのニャンコ | コメントを投稿する |
postmilliidleについて私なりの結論 よこしまさんの108から ##init = 0 timeout 6 switch case "コマンドが違います" ##init = -1 case timeout send"^M" case postmilliidle(100) "" ##init = 1 endswitch 上のスクリプトの場合だと、postmilliidle(10)ではだめです。 やっぱり100ミリ秒必要です。(10)だと、コマンドが違いますなのに、 なんにもないの方へいってしまう可能性があるんです。 かずやさんの117から >>100にするとはっきり遅いのがわかります。 >そうでしょうか?実際にはかってみましたか?(^-^; 正確に計ることは出来ませんが、1000にすると1秒ずつ遅れていくのがはっきり わかるので、100だったら0.1秒遅れるのだろうと言うことです。 だから私なりの解釈をして100行送信すると10秒の損、と言うことです。 それで10秒のタイムロスはどうしても我慢できなかったので、結局 wait postmilliidle(10) "" これ1行で全部を済ませてしまったんです。 よこしまさん かずやさん ごめんなさい |
| 00126 98/11/09 16:24 | menu-switch resultについて |
| 投稿者 : となりのニャンコ | コメントを投稿する |
よこしまさん かずやさん こんにちは となりのニャンコです 以前に質問したいと言いましたが質問内容を考えているうちに出来てしまいました。 お聞きしたかったことは、getline コマンドについてでした。どうしても動かなかっ たので質問したかったわけですが、動いたので別の質問をしたいと思います。 「電報」という機能をご存じでしょうか TALK と入力すると、現在通話中の会員さんのID一覧が表示されます。 ID NAME aaa00000 となりのニャンコ bbb11111 うちの三毛 ****** 次に相手のIDを入力して 1行だけメッセージを送るというものです。 できあがったスクリプトは以下のとうりです。 Talk: chat off chat on send "TALK" + "^M" wait "ID" timeout 1 ##dc = 0 beginloop getline #talk[##dc] if(timeout)goto Denmenu ##dc = ##dc + 1 endloop Denmenu: ##sa=1 beginloop ##sa=##sa+1 if(part(#talk[##sa],0,6)=="******")##mc=##sa if(##sa >= ##dc)breakloop endloop Dencount: #talk[##mc]="" ##mc=##mc+1 if(##mc==21)goto Denmenugo goto Dencount Denmenugo: menu"全員に送る","確定(このメニューを終了)","キャンセル",\ #talk[1],#talk[2],#talk[3],#talk[4],#talk[5] timeout 0 ##me=1 switch result case 0 send "all" + "^M" goto Dennuuryoku case 1 getchat #chat send #chat + "^M" goto Dennuuryoku case 2 chat off chat on send "^M" goto Dennuuryoku case 3 getchat #chat setchat #chat + part(#talk[1],0,9) case 4 getchat #chat setchat #chat + part(#talk[2],0,9) case 5 getchat #chat setchat #chat + part(#talk[3],0,9) case 6 getchat #chat setchat #chat + part(#talk[4],0,9) case 7 getchat #chat setchat #chat + part(#talk[5],0,9) case -1 goto Dennuuryoku endswitch goto Denmenugo Dennuuryoku: wait "メッセージを入力して下さい:" chat off chat on ime on wait "よろしいですか[Y/n]" send "Y" + "^M" ime off exit ここでは5人しか対応していませんが 実際のものは、かなりの余裕をつけて30人としてあります。 case 3 から case 7 の部分ですがこれだと5人だからたいしたことないのですが 30人だとどうなるかわかるでしょ どうにかなりますか。 あっそうそう、getline コマンドのタイムアウト時間の目安も教えて下さい。 |
| 00127 98/11/09 23:52 | RE:00126 menu-switch resultについて |
| 投稿者 : よこしま | コメントを投稿する |
こんにちは、となりのニャンコさん。 >menu"全員に送る","確定(このメニューを終了)","キャンセル",\ >#talk[1],#talk[2],#talk[3],#talk[4],#talk[5] >timeout 0 >##me=1 >switch result >case 0 > send "all" + "^M" > goto Dennuuryoku >case 1 > getchat #chat > send #chat + "^M" > goto Dennuuryoku >case 2 > chat off > chat on > send "^M" > goto Dennuuryoku >case 3 > getchat #chat > setchat #chat + part(#talk[1],0,9) >case 4 > getchat #chat > setchat #chat + part(#talk[2],0,9) >case 5 > getchat #chat > setchat #chat + part(#talk[3],0,9) >case 6 > getchat #chat > setchat #chat + part(#talk[4],0,9) >case 7 > getchat #chat > setchat #chat + part(#talk[5],0,9) >case -1 > goto Dennuuryoku >endswitch >goto Denmenugo >Dennuuryoku: >ここでは5人しか対応していませんが >実際のものは、かなりの余裕をつけて30人としてあります。 >case 3 から case 7 >の部分ですがこれだと5人だからたいしたことないのですが >30人だとどうなるかわかるでしょ >どうにかなりますか。 メニューの項目の個数が事前に決まっていない場合は menu ではなく, addmenu - showmenu を使います. また case は default というのを使います. 例 -------- ##x = result + 1 switch ##x case 0 exit case 1 処理 case 2 処理 case defalt message #talk[##x+1] endswitch ---------- みたいな感じです. >あっそうそう、getline コマンドのタイムアウト時間の目安も教えて下さい。 getline は以外と処理が難しいのでなるべく使わない方が 無難です. readbuffer を使いのがいいでしょう. よこしま Send 98/11/09 |
| 新規に投稿する |