home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 May / VPR9705A.ISO / FWINDOWS / Padnv335 / PADNV335.LZH / PADNAV.SCR < prev    next >
Text File  |  1996-10-26  |  118KB  |  4,895 lines

  1. ; NIFTY-Serve用通信統合環境 PADNAV 通信カーネル(秀Term用) Version 3.33
  2. ;                                                 Coded by Piyo / PFF01507
  3. ;
  4. ;    setautohangup 5
  5.     writebuffer "PADNAV Communication Kernel Version 3.16^M^J"
  6. ;***************** 大域変数の初期設定 *******************
  7.     @delete  = "YES"        ; 電子メール取得後削除するか
  8.     @mrebpl  = "YES"        ; 本文一括読込をBPlusで行うか
  9.     @modem   = "NO"            ; "+++"による回線切断
  10.     @logsel  = "NORMAL"     ; ログをフォーラム単位で分ける
  11.     @hosoku  = "NO"         ; ライブラリ補足をダウンするか
  12.     @expert  = "NO"            ; エキスパートモードかどうか
  13.     @menu    = "OFF"        ; 端末設定フラグ
  14.     @frmmenu = "OFF"        ; フォーラムオプション
  15.     @mailnew = "NO"            ; 新しいメールのみ受信
  16.     @here     = "UNKNOWN"    ; NIFのポジションを記憶
  17.     @message = "NULL"        ; 巡回中の会議室場所を記憶
  18.     @library = "NULL"        ; 巡回中のライブラリ場所を記憶
  19.     @news    = "FALSE"        ; NIFからのお知らせを一括ダウンするか
  20.     @sdl     = "FALSE"        ; 送信簿をダウンするか
  21.     @login     = "FALSE"        ; ログイン処理のみ行うか
  22.     @logout  = "FALSE"        ; ログアウト処理をしないか
  23.     @gopad   = "FALSE"        ; PADファイルを処理するか
  24.     @logdir  = "."          ; ログディレクトリ
  25.     @ttlfile = "TTLPAD."    ; 巡回PADファイル名
  26.     @padfile = "PAD.TMP"    ; ダウンロードPADファイル名
  27.     @errlog  = "ERROR.LOG"    ; エラーログファイル名
  28.     @flag    = "FALSE"        ; サブルーチンのリターンコード
  29.     @get     = "FALSE"        ; フォーラム情報を入手するか
  30.     @id         = "ID1"        ; ID選択
  31.     @setup   = "NO"            ; セットアップ用フラグ
  32.     @getlist = "NO"            ; 各種リスト取得巡回用フラグ
  33.     @allfrm  = "NO"            ; サービスメニューからフォーラム取得
  34.     @limit   = "NO"            ; 未読取得制限フラグ
  35.     @rc      = ""           ; 未読取得制限値
  36.     @inet    = "NO"            ; FENICS接続をスキップする
  37.     @skippad = "NO"            ; PAD処理をスキップする
  38.     @article = "NO"            ; 発言内容をすぐにダウンロードする
  39.     @extscr  = "NO"            ; 外部スクリプトを実行するか
  40.     @extfile = ""            ; 外部スクリプトファイル名
  41.     @extsub  = ""            ; 外部スクリプトサブルーチン名
  42.     @@count     = 0            ; リトライ回数
  43.     @readreq = "FALSE"        ; 発言ダウンロード予約
  44.     @readsay = ""            ; 発言ダウンロード用ログファイル名
  45.     @fuzai   = "FALSE"        ; 不在通知が登録されているか
  46.     @rtc     = "NO"            ; リアルタイム会議に参加するか
  47.     @nocheck = "NO"            ; ログインチェックを行う
  48.     @libscan = "NO"            ; ライブラリ検索日付の切替を行わない
  49.     @@rtc_no = 0            ; リアルタイム会議数
  50.     @frmttl  = ""            ; フォーラムタイトル
  51.     @comment = "YES"        ; コメント機能(//)
  52.     @hpname[0] = "END"        ; ホームパーティ変数初期化
  53.     @pationame[0] = "END"    ; ホームパティオ変数初期化
  54.     @padname[0] = "END"        ; 分割PADファイル変数初期化
  55.     @restart = "NO"            ; 再巡回指定
  56.  
  57.     @num[1] = "1"
  58.     @num[2] = "2"
  59.     @num[3] = "3"
  60.     @num[4] = "4"
  61.     @num[5] = "5"
  62.     @num[6] = "6"
  63.     @num[7] = "7"
  64.     @num[8] = "8"
  65.     @num[9] = "9"
  66.     @num[10] = "10"
  67.     @num[11] = "11"
  68.     @num[12] = "12"
  69.     @num[13] = "13"
  70.     @num[14] = "14"
  71.     @num[15] = "15"
  72.     @num[16] = "16"
  73.     @num[17] = "17"
  74.     @num[18] = "18"
  75.     @num[19] = "19"
  76.     @num[20] = "20"
  77.  
  78.     @forum = ""
  79.     @lib = ""
  80.     @kind = ""
  81.     @dest = ""
  82.     @root = ""
  83.     @froot = ""
  84.     @flist = ""
  85.     @flib = ""
  86.     @@layer = 0
  87.     @floor[0] = ""
  88.     @tpcflag = ""
  89.     if( length(%fatr) == 0 ) %fatr = "0"
  90.  
  91. ;************* TTLPAD, PADから情報読み込み **************
  92.  
  93.     chdir script
  94.     openfile @ttlfile
  95.     if( yes )
  96.         readfile @ttlfile, #line
  97.         @logdir = #line
  98.         readfile @ttlfile, #line
  99.         @endpath = #line
  100.         beginloop
  101.             readfile @ttlfile, #line
  102.             if ( no ) breakloop
  103.             switch #line
  104.                 case "*RESTART"
  105.                     @restart = "YES"
  106.                 case "*SETUP"
  107.                     call Setup
  108.                 case "*SDL"
  109.                     @sdl = "TRUE"
  110.                 case "*NEWS"
  111.                     @news = "TRUE"
  112.                 case "*LOGIN"
  113.                      @login = "TRUE"
  114.                 case "*LOGOUT"
  115.                     @logout = "TRUE"
  116.                 case "*HPLIST"
  117.                     ##i = 0;
  118.                     readfile @ttlfile, #buf
  119.                     if( yes )
  120.                         while( #buf != "*END" )
  121.                             @hpname[##i] = #buf
  122.                             readfile @ttlfile, #buf
  123.                             @hpid[##i] = #buf
  124.                             readfile @ttlfile, #buf
  125.                             @hppasswd[##i] = #buf
  126.                             ##i = ##i+1
  127.                             readfile @ttlfile, #buf
  128.                             if( no ) breakloop
  129.                         endwhile
  130.                     endif
  131.                     @hpname[##i] = "END"
  132.                 case "*PATIOLIST"
  133.                     ##i = 0;
  134.                     readfile @ttlfile, #buf
  135.                     if( yes )
  136.                         while( #buf != "*END" )
  137.                             @pationame[##i] = #buf
  138.                             readfile @ttlfile, #buf
  139.                             @patioid[##i] = #buf
  140.                             readfile @ttlfile, #buf
  141.                             @patiopasswd[##i] = #buf
  142.                             ##i = ##i+1
  143.                             readfile @ttlfile, #buf
  144.                             if( no ) breakloop
  145.                         endwhile
  146.                     endif
  147.                     @pationame[##i] = "END"
  148.                 case "*LIMIT"
  149.                     @lmtflag = "TRUE"
  150.                 case "*NEWMAIL"
  151.                     @mailnew = "YES"
  152.                 case "*ID1"
  153.                     @id = "ID1"
  154.                 case "*ID2"
  155.                     @id = "ID2"
  156.                 case "*EXPERT"
  157.                     @expert = "YES"
  158.                 case "*MAILSAVE"
  159.                     @delete = "NO"
  160.                 case "*MREAD"
  161.                     @mrebpl = "NO"
  162.                 case "*MODEM"
  163.                     @modem  = "YES"
  164.                 case "*LOGDATE"
  165.                     @logsel  = "DATE"
  166.                 case "*HOSOKU"
  167.                     @hosoku  = "YES"
  168.                 case "*MYFORUM"
  169.                     @getlist  = "YES"
  170.                 case "*BBSLIST"
  171.                     @getlist  = "YES"
  172.                 case "*TOPICLIST"
  173.                     @getlist  = "YES"
  174.                 case "*ALLFORUM"
  175.                     @allfrm  = "YES"
  176.                 case "*SCRIPTSTART"
  177.                     @extscr = "START"
  178.                 case "*SCRIPTEND"
  179.                     @extscr = "END"
  180.                 case "*INTERNET"
  181.                     @inet = "YES"
  182.                     if( #line == "*SCRIPTSTART" ) @extscr = "TOP"
  183.                 case "*SKIPPAD"
  184.                     @skippad = "YES"
  185.                 case "*MYARTICLE"
  186.                     @article = "YES"
  187.                 case "*RTC"
  188.                     @rtc = "YES"
  189.                 case "*IDCHECKOFF"
  190.                     @nocheck = "YES"
  191.                 case "*LIBSCAN"
  192.                     @libscan = "YES"
  193.                 case "*ENDCMD"
  194.                     @endcmd = "YES"
  195.                 case "*NOCOMMENT"
  196.                     @comment = "NO"
  197.                 case "*PADLIST"
  198.                     ##i = 0
  199.                     readfile @ttlfile, #buf
  200.                     if( yes )
  201.                         while( #buf != "*END" )
  202.                             @padname[##i] = #buf
  203.                             @padflag[##i] = "FALSE"
  204.                             ##i = ##i+1
  205.                             readfile @ttlfile, #buf
  206.                             if( no ) breakloop
  207.                         endwhile
  208.                     endif
  209.                     @padname[##i] = "END"
  210.             endswitch
  211.         endloop
  212.         closefile @ttlfile
  213.         restoredir
  214.     endif
  215.  
  216.     if( @skippad != "YES" )
  217.         chdir script
  218.         copyfile "PAD.",@padfile
  219.         if( yes )
  220.             ##i = value(%fatr)
  221.             ##i = ##i + 1
  222.             if( ##i >= 10 ) ##i = 0
  223.             %fatr = @num[##i]
  224.             #atr = "00"+@num[##i]
  225.             delfile "PAD."+#atr
  226.             copyfile "PAD.", "PAD."+#atr
  227.             delfile "PAD."
  228.         endif
  229.         restoredir
  230.     endif
  231.     if( @setup != "DONE" )
  232.         chdir script
  233.         openfile @padfile
  234.         restoredir
  235.         if( yes ) @gopad = "TRUE"
  236.     endif
  237.  
  238. ;************** NIFTY-Serveへの接続手順 *****************
  239.  
  240.     afterhangup PostConnect
  241.     if( @restart == "YES")
  242.         title "再巡回開始"
  243.         goto Restart
  244.     endif
  245.     keyboard off
  246.     title "接続中"
  247.     if( @extscr == "TOP" )
  248.         call EXECUTE.SCR:EXECSUB
  249.         chdir script
  250.         delfile "EXECUTE.SCR"
  251.         restoredir
  252.     endif
  253.     if( @inet == "NO" )
  254.         timeout 4
  255.         beginloop
  256.             loopswitch
  257.                 case " Enter Connection-ID  --->"
  258.                     timeout 20
  259.                     goto nextseq
  260.                 case "^M^J*"
  261.                     send "C NIF^M"                    ; ホストとしてNIFを選択
  262.                     loopswitch
  263.                         case "^M^J Enter Connection-ID  --->"
  264.                             timeout 20
  265.                             goto nextseq
  266.                         case "^M^J*"
  267.                             @@count = @@count + 1
  268.                             if( @@count > 10 ) goto エラー
  269.                             send "C NIF^M"            ; 再コネクト要求
  270.                         case timeout
  271.                             breakloop
  272.                     endloop
  273.                     breakloop
  274.                 case timeout
  275.                     breakloop
  276.             endloop
  277.             timeout 1
  278.             send "."
  279.             wait "."
  280.             if( timeout )
  281.                 send " P^M"                                ; Road 2, 3
  282.             else
  283.                 send "00+"                                ; Road 1
  284.             endif
  285.             timeout 20
  286.         endloop
  287.     endif
  288. nextseq:
  289.     send "SVC^M"                                    ; 一般ユーザーとして接続
  290.     wait " Enter User-ID  --->"
  291.     if( timeout ) goto エラー
  292.     if( @id == "ID1" ) #idset = %NifID
  293.     if( @id == "ID2" ) #idset = %NifID2
  294.     if( #idset == "" )
  295.         input "IDを入力して下さい", #idset
  296.         if( cancel ) goto HangUp
  297.         if( @id == "ID1" ) %NifID = #idset
  298.         if( @id == "ID2" ) %NifID2 = #idset
  299.     endif
  300. EnterUserID:
  301.     send #idset + "^M"
  302.     loopswitch
  303.         case " Enter Password --->"
  304.             breakloop
  305.         case " User-ID Error"
  306.             timeoutmessage "ID番号が間違っています", 3
  307.             goto HangUp
  308.         case timeout
  309.             goto エラー
  310.     endloop
  311. EnterPassword:
  312.     ##count = 0
  313.     if( @id == "ID1" ) #passset = %%NifPassword
  314.     if( @id == "ID2" ) #passset = %%NifPass2
  315.     if( #passset == "" )
  316.         secretinput "パスワードを入力して下さい", #passset
  317.         if( cancel ) goto HangUp
  318.         if( @id == "ID1" ) %%NifPassword = #passset
  319.         if( @id == "ID2" ) %%NifPass2 = #passset
  320.         if( @id == "ID1" ) copyfile "variable.txt", %NifID+".VAR"
  321.         if( @id == "ID2" ) copyfile "variable.txt", %NifID2+".VAR"
  322.         if( @id == "ID1" ) copyfile "hideterm.ini", %NifID+".HTM"
  323.         if( @id == "ID2" ) copyfile "hideterm.ini", %NifID2+".HTM"
  324.         ##count = ##count+1
  325.     endif
  326.     send #passset + "^M"
  327.     #mailread = "no"
  328. CUG:
  329.     loopswitch
  330.         case "^M^JようこそNIFTY-Serveへ"
  331.             title "接続完了"
  332.             breakloop
  333.         case " Password ERROR"
  334.             timeoutmessage "パスワードが間違っています", 2
  335.             if( ##count > 2 ) goto HangUp
  336.             secretinput "パスワードを入力して下さい", #passset
  337.             if( cancel ) goto HangUp
  338.             if( @id == "ID1" ) %%NifPassword = #passset
  339.             if( @id == "ID2" ) %%NifPass2 = #passset
  340.             send #passset + "^M"
  341.             ##count = ##count+1
  342.         case "^M^J本日は定期メンテナンス"
  343.             title "定期保守中"
  344.             goto Hoshu
  345.         case "^M^J只今の時間、"
  346.             title "定期保守中"
  347.             goto Hoshu
  348.         case "^M^J◆二重ログインです◆"
  349.             title "既にこのIDでログインされています"
  350.             goto LoginErr
  351.         case postmilliidle(500) "^M^J>"
  352.             send "GO NIF^M"
  353.             wait "3. 会員規約の表示^M^J>"
  354.             send "1^M"
  355.             goto CUG
  356.         case "-メールが"
  357.             title "CUG:メールが来ています"
  358.             #mailread = "yes"
  359.         case "未読分"
  360.             title "CUG:メールが来ています(未読メールあり)"
  361.             #mailread = "new"
  362.         case timeout
  363.             goto エラー
  364.     endloop
  365.  
  366.     wait "^M^J All Rights Reserved^M^J"            ; NIF接続を再確認
  367.     chdir log
  368.     delfile "opening.log"
  369.     restoredir
  370.     log "opening.log"
  371.     timeout 0
  372.     loopswitch
  373.         case "-メールが"
  374.             title "メールが来ています"
  375.             #mailread = "yes"
  376.         case "-現在,不在通知が"
  377.             title "不在通知が登録されています"
  378.             @fuzai = "TRUE"
  379.         case "未読分"
  380.             title "メールが来ています(未読メールあり)"
  381.             #mailread = "new"
  382.         case "☆フラッシュニュース☆"
  383.             title "フラッシュニュース"
  384.             log
  385.             log "flash."
  386.         case "今週のお知らせ"
  387.             title "今週のお知らせ"
  388.             log
  389.             chdir log
  390.             delfile "newsttl."
  391.             restoredir
  392.             log "newsttl."
  393.             #weeknews = "yes"
  394.         case "NIFTY-Serve     TOP"
  395.             log
  396.             @MENU = "ON"
  397.         case "^M^J>"
  398.             log
  399.             ##i = 2
  400.             beginloop
  401.                 readbuffer ##i, #log1
  402.                 #logdest = drop(#log1, "LOG")
  403.                 if( #logdest == "前回" ) breakloop
  404.                 ##i = ##i+1
  405.             endloop
  406.             breakloop
  407.     endloop
  408.     if( @nocheck != "YES" )
  409.         if( @id == "ID1" )
  410.             #chkdate = "LOGOUT1.LOG"
  411.         else
  412.             #chkdate = "LOGOUT2.LOG"
  413.         endif
  414.         chdir log
  415.         openfile #chkdate
  416.         if( yes )
  417.             readfile #chkdate, #log2
  418.             closefile #chkdate
  419.             restoredir
  420.             #logdest = search(#log1, "OUT ")
  421.             ##i = length(#logdest)
  422.             #logdest = part(#logdest, 4, ##i-4)
  423.             #logsrc  = search(#log2, "- ")
  424.             ##i = length(#logsrc)
  425.             #logsrc = part(#logsrc, 3, ##i-3)
  426.         endif
  427.         restoredir
  428.         if( #logsrc != #logdest )
  429.             call ChangePass
  430.         else
  431.             writebuffer2 "^M^Jログインチェック:侵入の形跡はありません^M^J>"
  432.         endif
  433.     endif
  434.     if( #weeknews == "yes" and @news == "TRUE" ) call ReadNews    ; お知らせを読む
  435.     if( @menu == "ON" )
  436.         title "端末設定を変更しています"
  437.         call SetMenuOff
  438.     endif
  439.     if( #mailread == "new" ) call AutoMailRead    ; 電子メール処理
  440.     if( #mailread == "yes" and @mailnew != "YES" ) call AutoMailRead
  441.     if( @login == "FALSE" or @getlist == "TRUE" )
  442.         if( @extscr == "START" )
  443.             call EXECUTE.SCR:EXECSUB
  444.             chdir script
  445.             delfile "EXECUTE.SCR"
  446.             restoredir
  447.         endif
  448. Restart:
  449.         if( @skippad == "NO" ) call PAD            ; ダウンロードPAD処理
  450.         call TITLE                                ; 巡回処理
  451.         if( @skippad == "NO" ) call RunPad        ; 分割PAD処理
  452.         if( @sdl == "TRUE" ) call PADNAV1.SCR:SDL            ; 送信簿処理
  453.         if( @restart == "YES" )
  454.             title "再巡回を終了しました"
  455.             exit                                ; 再巡回終了
  456.         endif
  457.         if( (@menu == "OFF") AND (@expert == "NO") )
  458.             title "端末設定を元に戻しています"
  459.             call SetMenuOn
  460.         endif
  461.         if( (@frmmenu = "OFF") AND (@expert == "NO") )
  462.             title "フォーラムオプションを元に戻しています"
  463.             call ForumMenuOn
  464.         endif
  465.         if( @rtc == "YES" ) call RTC            ; リアルタイム会議
  466.         if( @extscr == "END" )
  467.             call EXECUTE.SCR:EXECSUB
  468.             chdir script
  469.             delfile "EXECUTE.SCR"
  470.             restoredir
  471.         endif
  472.         if( @logout == "FALSE" )
  473.             title "切断処理中"
  474.             send "OFF^M"
  475.             loopswitch
  476.                 case "☆フラッシュニュース☆"
  477.                     title "フラッシュニュース"
  478.                     log "flash."
  479.                 case "^M^J"
  480.                     log
  481.                     breakloop
  482.             endloop
  483.         else
  484.             title "巡回を終了しました"
  485.             keyboard on
  486.             getdate #date
  487.             log "NIF"+part( #date, 2, 4 )+".LOG"
  488.         endif
  489.     else
  490.         title "ログインを完了しました"
  491.         keyboard on
  492.         getdate #date
  493.         log "NIF"+part( #date, 2, 4 )+".LOG"
  494.     endif
  495.     loopswitch
  496.         case "^M^J ご利用誠にありがとうございました。^M^J"
  497.             breakloop
  498.         case "のユーザーからのメッセージです-^M^J"
  499.             readbuffer 1,#line
  500.             #line = drop(#line, " のユーザーからのメッセージです-")
  501.             #id = search(#line, "-")
  502.             #id = part(#id, 2, 8)
  503.             #file = @logdir+"\send.txt"
  504.             openfile #file
  505.             if( yes )
  506.                 readfile #file, #line
  507.                 send "SEND "+#id+" "+#line+"^M"
  508.                 closefile #file
  509.             else
  510.                 #line = ""
  511.                 input "メッセージを入力して下さい", #line
  512.                 if( enter ) send "SEND "+#id+" "+#line+"^M"
  513.             endif
  514.     endloop
  515.     log
  516.     switch
  517.         case "CLEAR CONFIRMED"
  518.             readbuffer 9, #buf
  519.             goto Logout1
  520.         case "*"
  521.             readbuffer 10, #buf
  522.         case "01+"
  523.             readbuffer 6, #buf
  524.     endswitch
  525. Logout1:
  526.     chdir log
  527.     createfile #chkdate
  528.     writefile #chkdate, #buf
  529.     closefile #chkdate
  530.     restoredir
  531.     goto HangUp
  532.  
  533. ;**************** エラー処理ルーチン ******************
  534. エラー:
  535.     afterhangup ErrorHangup
  536.     goto HangUp
  537.  
  538. ErrorLog:
  539.     chdir log
  540.     appendfile @errlog
  541.     if( no ) createfile @errlog
  542.     gettime #time
  543.     #hour = part(#time, 0, 2)
  544.     #min = part(#time, 2, 2)
  545.     getdate #date
  546.     #year = part(#date, 0, 2)
  547.     #month = part(#date, 2, 2)
  548.     #day = part(#date, 4, 2)
  549.     #line = #year+"/"+#month+"/"+#day+" "+#hour+":"+#min+" "+#1
  550.     writefile @errlog, #line
  551.     closefile @errlog
  552.     restoredir
  553.     return
  554.  
  555. Hoshu:
  556.     message "定期保守中ですので、後程アクセスして下さい"
  557.     call ErrorLog "定期保守中"
  558.     goto HangUp
  559.  
  560. LoginErr:
  561.     message "既にこのIDでログインされています"
  562.     call ErrorLog "二重ログイン"
  563.     goto HangUp
  564.  
  565. ErrorHangup:
  566.     message "ネットワークに接続できませんでした"
  567.     call ErrorLog "ネットワーク接続失敗"
  568.     goto HangUp
  569.  
  570. ForumBusy:
  571.     message "フォーラムが混雑していて巡回出来ませんでした"
  572.     call ErrorLog "フォーラム混雑"
  573.     goto HangUp
  574.  
  575. HpBusy:
  576.     message "ネットワークが混雑していてホームパーティに入れませんでした"
  577.     call ErrorLog "ホームパーティ混雑"
  578.     goto HangUp
  579.  
  580. PatioBusy:
  581.     message "ネットワークが混雑していてホームパティオに入れませんでした"
  582.     call ErrorLog "ホームパティオ混雑"
  583.     goto HangUp
  584.  
  585. ForumHoshu:
  586.     message "フォーラム保守の為、巡回を中止しました"
  587.     call ErrorLog "フォーラム保守"
  588.     goto HangUp
  589.  
  590. ;******************* 回線切断手順 *********************
  591. HangUp:
  592.     if( @id == "ID1" ) copyfile "variable.txt", %NifID+".VAR"
  593.     if( @id == "ID2" ) copyfile "variable.txt", %NifID2+".VAR"
  594.     if( @modem == "YES" )
  595.         send "+++"
  596.         wait "OK"
  597.         send "ath^M"
  598.         wait "OK"
  599.     endif
  600.     hangup
  601.  
  602. PostConnect:
  603.     @ttlfile = "TTLPAD."    ; 巡回PADファイル名
  604.     @logdir  = "."          ; ログディレクトリ
  605.     @endcmd = "NO"            ; アクセス終了後に指定コマンドを実行するか
  606.     @endpath = ""            ; アクセス終了後に実行されるコマンド
  607.  
  608.     chdir script
  609.     openfile @ttlfile
  610.     if( yes )
  611.         readfile @ttlfile, #line
  612.         @logdir = #line
  613.         readfile @ttlfile, #line
  614.         @endpath = #line
  615.         beginloop
  616.             readfile @ttlfile, #line
  617.             if ( no ) breakloop
  618.             if( #line == "*ENDCMD" ) @endcmd = "YES"
  619.         endloop
  620.         closefile @ttlfile
  621.         restoredir
  622.     endif
  623.  
  624.     if( @endcmd == "YES" )
  625.         run @endpath
  626.     else
  627.         openfile "setclkd.exe"
  628.         if( yes )
  629.             closefile "setclkd.exe"
  630.             ##i = 0
  631.             #datetime = ""
  632.             while( #datetime == "" )
  633.                 ##i = ##i + 1
  634.                 if( ##i > 30 ) breakloop
  635.                 readbuffer ##i,#buf
  636.                 #datetime = search( #buf,"        LOG OUT --- " )
  637.             endwhile
  638.             if(#datetime != "")
  639.                 #datetime = part( #datetime, 23, 255 )
  640.                 run "setclkd /ds:5 " + #datetime
  641.             endif
  642.         endif
  643.     endif
  644.     closehideterm
  645.     exit
  646.  
  647. ;******************* 秀Termセットアップ *********************
  648. Setup:
  649.     beginloop
  650.         readfile @ttlfile, #line
  651.         if ( no ) breakloop
  652.         ##i = length(#line)
  653.         #p = part(#line, 1, 3)
  654.         if( #p == "ID1" )
  655.             #q = part(#line, 5, ##i-5)
  656.             %NifID = #q
  657.             readfile @ttlfile, #line
  658.             ##i = length(#line)
  659.             #q = part(#line, 10, ##i-10)
  660.             %%NifPassword = #q
  661.         elseif( #p == "ID2" )
  662.             #q = part(#line, 5, ##i-5)
  663.             %NifID2 = #q
  664.             readfile @ttlfile, #line
  665.             ##i = length(#line)
  666.             #q = part(#line, 10, ##i-10)
  667.             %%NifPass2 = #q
  668.         elseif( #p == "END" )
  669.             breakloop
  670.         endif
  671.     endloop
  672.     @setup = "DONE"
  673. return
  674.  
  675. ;<<<<<<<<<<<<<< PAD処理サブルーチン >>>>>>>>>>>>>>>>>
  676.  
  677. ;*********** 「今週のお知らせ」読み取り手順 ************
  678. ReadNews:
  679.     title "今週のお知らせ受信中"
  680.     log "NIFNEWS."
  681.     send "ALL^M"
  682.     loopswitch
  683.         case "^M^J続き (改行で次文書 E:終了)"
  684.             wait  "^M^J>"
  685.             send "^M"
  686.         case "^M^J続き (改行で次頁 S:次文書 E:終了)"
  687.             wait  "^M^J>"
  688.             send "^M"
  689.         case "^M^J続き (改行で表示 E:終了)"
  690.             wait  "^M^J>"
  691.             send "^M"
  692.         case "^M^J表示終了"
  693.             wait  "^M^J>"
  694.             log
  695.             breakloop
  696.     endloop
  697.     return
  698.  
  699. ;************ 電子メールダウンロード手順 ***************
  700. AutoMailRead:
  701.     #mailold = "NO"
  702.     #bmailflg = "FALSE"
  703.     title "電子メール受信中"
  704.     if( @here != "MAIL" )
  705.         send "MAIL^M"
  706.         loopswitch
  707.             case "^M^JMAIL>"
  708.                 breakloop
  709.             case "^M^J>"
  710.                 call SetMenuOff
  711.                 send "MAIL^M"
  712.         endloop
  713.         @here = "MAIL"
  714.     endif
  715.     send "READ NEW^M"                        ; 始めに最新メールをダウン
  716.     log "MAIL."                                ; 記録開始
  717.     loopswitch
  718.         case "* 1"                            ; 既読メールあり
  719.             #mailold = "YES"
  720.         case postmilliidle(500) "^M^J:"    ; メニューレスポンス
  721.             if( @delete == "YES" ) send "del^M"
  722.             else send "save^M"                ; 読んだメールは保存
  723.             #mailold = "NO"                    ; フラグリセット
  724.         case postmilliidle(500) "^M^J>"    ; 受信リストのレスポンス
  725.             if( @mailnew != "YES" )
  726.                 send"1^M"
  727.             elseif( @mailnew == "YES" and #mailold == "NO" )
  728.                 send"1^M"
  729.             else                            ; メニュープロンプトと判断
  730.                 log
  731.                 breakloop
  732.             endif
  733.         case postmilliidle(500) "^M^Jmore>", postmilliidle(500) "^M^J続き (改行で表示 E:終了)" 
  734.                                             ; ページ制御対応
  735.             send "^M"
  736.         case postmilliidle(100) "^M^Jaction:"    ; コマンドレスポンス
  737.             if( @delete == "YES" ) send "del^M"
  738.             else send "save^M"                ; 読んだメールは保存
  739.             #mailold = "NO"
  740.         case postmilliidle(500) "^M^JMAIL>"    ; メール読み取り終了
  741.             if( @mailnew == "YES" )
  742.                 log
  743.                 breakloop
  744.             else                            ; 既読メール読み取り
  745.                 send "READ^M"
  746.             endif
  747.         case "^M^J-未読メールは"                ; メール読み取り終了
  748.             wait "^M^J>", "^M^JMAIL>"
  749.             if( @mailnew == "YES" )
  750.                 log
  751.                 breakloop
  752.             else                            ; 既読メール読み取り
  753.                 send "READ^M"
  754.             endif
  755.         case "^M^J-あなた宛の"                    ; 既読メール読み取り終了
  756.             log
  757.             wait "^M^J>", "^M^JMAIL>"
  758.             breakloop
  759.         case "表示出来ません◆"                ; バイナリーメールを確認
  760.             loopswitch
  761.                 case postmilliidle(500) "^M^Jaction:" ; これも念のための処理
  762.                     if( @delete == "YES" ) send "del^M"
  763.                     else send "save^M"
  764.                 case postmilliidle(500) "^M^JMAIL>", postmilliidle(500) "^M^J>"
  765.                                                 ; メール読み取り終了
  766.                     log
  767.                     send "READ NEW^M"            ; バイナリーメールリスト取得
  768.                     wait "^M^JMAIL>", "^M^J>"
  769.                     ##i = 0
  770.                     beginloop
  771.                         ##i = ##i+1
  772.                         readbuffer ##i, #line
  773.                         #p = part(#line, 0, 6)
  774.                         if( #p == "◆番号" )
  775.                             #bmail[##i] = part(#line, 6, 2)
  776.                         else
  777.                             breakloop
  778.                         endif
  779.                     endloop
  780.                     while( ##i > 1 )
  781.                         call DownBMAIL #bmail[##i-1]
  782.                         ##i = ##i-1
  783.                     endwhile
  784.                     breakloop
  785.             endloop
  786.             if( @mailnew == "YES" )
  787.                 log
  788.                 breakloop
  789.             else                            ; 既読メール読み取り
  790.                 send "READ^M"
  791.             endif
  792.     endloop
  793. return
  794.  
  795. ;************** バイナリーメール読み取り手順 ***************
  796.  
  797. DownBMAIL:
  798.     title "バイナリーメール受信中"
  799.     chdir download
  800.     send "DOWN "+#1+" PROT:BPL^M"
  801.     loopswitch
  802.         case ":"
  803.             gettime #time                ; ダウン時の時間をファイル名に
  804.             #hour = part(#time, 0, 2)
  805.             #min = part(#time, 2, 2)
  806.             #file=#time+".lzh"
  807.             getdate #date
  808.             #year = part(#date, 0, 2)
  809.             #month = part(#date, 2, 2)
  810.             #day = part(#date, 4, 2)
  811.             #title = "^M^J^M^J 0  【B-Mail受信】    ????????          "+#year+"/"+#month+"/"+#day+" "+#hour+":"+#min+" "+#file
  812.  
  813.             #log = @logdir+"\mail."
  814.             appendfile #log
  815.             if( no ) createfile #log
  816.             writefile #log, #title
  817.             closefile #log
  818.             port autobplus = off
  819.             send #file+"^M"                ; 普通は、LHaで圧縮されているはず
  820.             wait "^E"
  821.             download #file, bplus
  822.             wait  "^M^J:"
  823.             if( @delete == "YES" )
  824.                 send "1^M"
  825.             else
  826.                 send "2^M"
  827.             endif
  828.         case  "^M^JMAIL>", "^M^J>"        ; ダウンロード終了
  829.             port autobplus = on
  830.             restoredir
  831.             breakloop
  832.     endloop
  833. return
  834.  
  835. ;************** ダウンロードPAD処理手順  ****************
  836. PAD:
  837.     if( @gopad != "TRUE" ) return            ; PADファイルがない
  838.     beginloop
  839.         readfile @padfile, #line
  840.         if( no ) breakloop                    ; PAD処理終了
  841.         #buf = "FALSE"
  842.         #p = part( #line, 0, 1 )
  843.         if( #p == "*" )                        ; PAD命令か?
  844.             if( #line == "*MAIL" )
  845.                 if( @readreq == "TRUE" ) call DownMyArticle    ; 発言記事をダウン
  846.                 call SendMail
  847.                 goto skip_pad
  848.             endif
  849.             if( #line == "*BMAIL" )
  850.                 if( @readreq == "TRUE" ) call DownMyArticle
  851.                 call SendBMail
  852.                 goto skip_pad
  853.             endif
  854.             if( #line == "*DELMAIL" )
  855.                 if( @readreq == "TRUE" ) call DownMyArticle
  856.                 call DelMail
  857.                 goto skip_pad
  858.             endif
  859.             if( #line == "*NEWFORUM" )
  860.                 if( @readreq == "TRUE" ) call DownMyArticle
  861.                 call Regist #line
  862.                 goto skip_pad
  863.             endif
  864.             if( #line == "*NEWSUBFRM" )
  865.                 if( @readreq == "TRUE" ) call DownMyArticle
  866.                 call Regist #line
  867.                 goto skip_pad
  868.             endif
  869.             if( #line == "*SHAREWARE" )
  870.                 if( @readreq == "TRUE" ) call DownMyArticle
  871.                 call Share
  872.                 goto skip_pad
  873.             endif
  874.             if( #line == "*SETPROF" )
  875.                 if( @readreq == "TRUE" ) call DownMyArticle
  876.                 call SetProf
  877.                 goto skip_pad
  878.             endif
  879.             if( #line == "*SETFUZAI" )
  880.                 if( @readreq == "TRUE" ) call DownMyArticle
  881.                 call SetFuzai
  882.                 goto skip_pad
  883.             endif
  884.             if( #line == "*RESETFUZAI" )
  885.                 if( @readreq == "TRUE" ) call DownMyArticle
  886.                 call ResetFuzai
  887.                 goto skip_pad
  888.             endif
  889.             if( #line == "*DISCLOSE" )
  890.                 if( @readreq == "TRUE" ) call DownMyArticle
  891.                 call PADNAV1.SCR:ChgPrivate #line
  892.                 goto skip_pad
  893.             endif
  894.             if( #line == "*SECRET" )
  895.                 if( @readreq == "TRUE" ) call DownMyArticle
  896.                 call PADNAV1.SCR:ChgPrivate #line
  897.                 goto skip_pad
  898.             endif
  899.             if( #line == "*ACCESSGIFT" )
  900.                 if( @readreq == "TRUE" ) call DownMyArticle
  901.                 call PADNAV1.SCR:AccessGift @padfile
  902.                 @flag = "FALSE"
  903.                 goto skip_pad
  904.             endif
  905.             if( #line == "*RECEIVEGIFT" )
  906.                 if( @readreq == "TRUE" ) call DownMyArticle
  907.                 call PADNAV1.SCR:ReceiveGift
  908.                 @flag = "FALSE"
  909.                 goto skip_pad
  910.             endif
  911.             if( #line == "*FILEFINDER" )
  912.                 if( @readreq == "TRUE" ) call DownMyArticle
  913.                 call PADNAV1.SCR:FileFinder @padfile, @logdir
  914.                 @flag = "FALSE"
  915.                 goto skip_pad
  916.             endif
  917.             if( #line == "*CHGPASS" )
  918.                 if( @readreq == "TRUE" ) call DownMyArticle
  919.                 call ChgPass
  920.                 goto skip_pad
  921.             endif
  922.             if( #line == "*SYSOP" )
  923.                 if( @readreq == "TRUE" ) call DownMyArticle
  924.                 readfile @padfile, #line
  925.                 if( @here == #line) #buf = "TRUE"
  926.                 @here = #line
  927.                 call ToSysop #line, #buf
  928.                 goto skip_pad
  929.             endif
  930.             if( #line == "*DELTITLE" )
  931.                 if( @readreq == "TRUE" ) call DownMyArticle
  932.                 readfile @padfile, #line
  933.                 if( @here == #line) #buf = "TRUE"
  934.                 @here = #line
  935.                 #forum = "*GO "+#line
  936.                 #topic = @logdir+"\topic.lst"
  937.                 openfile #topic
  938.                 readfile #topic, #list
  939.                 while( yes )
  940.                     if( #list == #line )
  941.                         closefile #topic
  942.                         call DelTitle #forum, #buf, "TOPIC"
  943.                         goto skip_pad
  944.                     endif
  945.                     readfile #topic, #list
  946.                 endwhile
  947.                 closefile #topic
  948.                 #IsPatio = "FALSE"
  949.                 ##i = 0
  950.                 beginloop
  951.                     if( @pationame[##i] == #line )
  952.                         #IsPatio = "TRUE"
  953.                         breakloop
  954.                     elseif( @pationame[##i] == "END" )
  955.                         breakloop
  956.                     endif
  957.                     ##i = ##i+1
  958.                 endloop
  959.                 if( #IsPatio == "TRUE" )
  960.                     call DelTitle #forum, #buf, "PATIO", @patioid[##i], @patiopasswd[##i]
  961.                 else
  962.                     call DelTitle #forum, #buf, "FORUM"
  963.                 endif
  964.                 goto skip_pad
  965.             endif
  966.             if( #line == "*QUIT" )
  967.                 if( @readreq == "TRUE" ) call DownMyArticle
  968.                 readfile @padfile, #line
  969.                 if( @here == #line) #buf = "TRUE"
  970.                 @here = #line
  971.                 call FrmQuit #line, #buf
  972.                 goto skip_pad
  973.             endif
  974.             if( #line == "*CHGHANDLE" )
  975.                 if( @readreq == "TRUE" ) call DownMyArticle
  976.                 readfile @padfile, #line
  977.                 if( @here == #line) #buf = "TRUE"
  978.                 @here = #line
  979.                 call ChgHandle #line, #buf
  980.                 goto skip_pad
  981.             endif
  982.             if( #line == "*READNEWS" )
  983.                 if( @readreq == "TRUE" ) call DownMyArticle
  984.                 @here = "NEW"
  985.                 readfile @padfile, #line
  986.                 call PADNAV1.SCR:ReadWeekNews #line
  987.                 goto skip_pad
  988.             endif
  989.             if( #line == "*TOPICLIST" )
  990.                 if( @readreq == "TRUE" ) call DownMyArticle
  991.                 readfile @padfile, #line
  992.                 call PADNAV1.SCR:GetTopicList #line, @logdir
  993.                 goto skip_pad
  994.             endif
  995.             if( #line == "*TOPIC" )
  996.                 if( @readreq == "TRUE" ) call DownMyArticle
  997.                 readfile @padfile, #line1
  998. ;                if( @here == #line1) #buf = "TRUE"
  999.                 @here = #line1
  1000.                 call GetTopic #line1, "PAD", #buf    ; 特設掲示板の読取
  1001.                 goto skip_pad
  1002.             endif
  1003.             if( #line == "*TELNET" )
  1004.                 if( @readreq == "TRUE" ) call DownMyArticle
  1005.                 readfile @padfile, #address
  1006.                 readfile @padfile, #scr
  1007.                 call PADNAV1.SCR:Telnet #address, #scr
  1008.                 goto skip_pad
  1009.             endif
  1010.             if( #line == "*CHECKSHARE" )
  1011.                 if( @readreq == "TRUE" ) call DownMyArticle
  1012.                 readfile @padfile, #number
  1013.                 readfile @padfile, #from
  1014.                 readfile @padfile, #to
  1015.                 call PADNAV1.SCR:CheckShare #number, #from, #to
  1016.                 goto skip_pad
  1017.             endif
  1018.             #p = part( #line, 1, 2 )
  1019.             if( #p == "HP" )
  1020.                 if( @readreq == "TRUE" ) call DownMyArticle
  1021.                 ##i = length(#line)
  1022.                 #p = part(#line, 4, ##i-4)
  1023.                 if( @here == #p) #buf = "TRUE"
  1024.                 @here = #p
  1025.                 call SendHP    #p, #buf                ; 書き込み処理(HP)
  1026.                 goto skip_pad
  1027.             elseif( #p == "PA" )
  1028.                 ##i = length(#line)
  1029.                 #p = part(#line, 7, ##i-7)
  1030.                 if( @here == #p)
  1031.                     #buf = "TRUE"
  1032.                 elseif( @readreq == "TRUE" )
  1033.                     call DownMyArticle
  1034.                 endif
  1035.                 @here = #p
  1036.                 call SendPatio #p, #buf                ; 書き込み処理(Patio)
  1037.                 @readreq = "TRUE"
  1038.                 goto skip_pad
  1039.             elseif( #p == "GO" )                    ; 本文読みだし
  1040.                 if( @readreq == "TRUE" ) call DownMyArticle
  1041.                 ##i = length(#line)
  1042.                 #q = part( #line, 4, ##i-4 )
  1043.                 if( @here == #q) #buf = "TRUE"
  1044.                 @here = #q
  1045.                 #topic = @logdir+"\topic.lst"
  1046.                 openfile #topic
  1047.                 readfile #topic, #list
  1048.                 while( yes )
  1049.                     if( #list == #q )
  1050.                         closefile #topic
  1051.                         call Forum #line, #buf, "TOPIC"
  1052.                         goto skip_pad
  1053.                     endif
  1054.                     readfile #topic, #list
  1055.                 endwhile
  1056.                 closefile #topic
  1057.                 #IsPatio = "FALSE"
  1058.                 ##i = 0
  1059.                 beginloop
  1060.                     if( @pationame[##i] == #q )
  1061.                         #IsPatio = "TRUE"
  1062.                         breakloop
  1063.                     elseif( @pationame[##i] == "END" )
  1064.                         breakloop
  1065.                     endif
  1066.                     ##i = ##i+1
  1067.                 endloop
  1068.                 if( #IsPatio == "FALSE" )
  1069.                     call Forum #line, #buf, "FORUM"
  1070.                 else
  1071.                     call DownPatio #line, #buf
  1072.                 endif
  1073.                 goto skip_pad
  1074.             elseif( #p == "PR" )
  1075.                 if( @readreq == "TRUE" ) call DownMyArticle
  1076.                 call PADNAV1.SCR:Profile #line    ; プロフィール読みだし
  1077.                 goto skip_pad
  1078.             elseif( #p == "BU" )
  1079.                 #p = part( #line, 1, 8 )
  1080.                 if( #p == "BULTITLE" )
  1081.                     if( @readreq == "TRUE" ) call DownMyArticle
  1082.                     ##i = length(#line)
  1083.                     #q = part( #line, 10, ##i-10 )
  1084.                     call GetBbsTitle #q    ; 掲示板リストの呼び出し
  1085.                     goto skip_pad
  1086.                 endif
  1087.             endif                                    ; 書き込み処理(フォーラム)
  1088.             ##i = length(#line)
  1089.             #p = part(#line, 1, ##i-1)
  1090.             if( @here == #p) #buf = "TRUE"
  1091.             @here = #p
  1092.             #p = part(#line, 1, ##i-1)
  1093.             #cmd = "*GO "+#p
  1094.             #topic = @logdir+"\topic.lst"
  1095.             openfile #topic
  1096.             readfile #topic, #list
  1097.             while( yes )
  1098.                 if( #list == #p )
  1099.                     closefile #topic
  1100.                     call SendMes #cmd, #buf, "TOPIC"
  1101.                     goto skip_pad
  1102.                 endif
  1103.                 readfile #topic, #list
  1104.             endwhile
  1105.             closefile #topic
  1106.             call SendMes #cmd, #buf, "FORUM"
  1107.         endif
  1108. skip_pad:
  1109.     endloop
  1110.     if( @readreq == "TRUE" ) call DownMyArticle
  1111.     closefile @padfile
  1112.     chdir script
  1113.     delfile @padfile
  1114.     restoredir
  1115.     @gopad = "FALSE"
  1116. return
  1117.  
  1118. ;************** フォーラムから情報を読み込む  ****************
  1119.  
  1120. Forum:
  1121.     #tpc = "FALSE"
  1122.     #inet = "FALSE"
  1123.     ##i = length(#1)
  1124.     #forum = part(#1, 4, ##i-4)
  1125.     if( #forum == "bbs" )
  1126.         title "掲示板から受信中"
  1127.         #3 = "BBS"
  1128.     else
  1129.         title #forum+"から受信中"
  1130.     endif
  1131.     if( #2 == "FALSE" )
  1132.         @get = "FALSE"
  1133.         if( #3 == "FORUM" )
  1134.             call AccessForum #1                    ; フォーラムを移動する
  1135.         else
  1136.             call AccessTopic #1
  1137.         endif
  1138.         if( @flag == "TRUE" ) return        ; フォーラムが存在しない
  1139.     endif
  1140.     readfile @padfile, #line
  1141.     #IsBul = #line
  1142.     ##i = length(#line)
  1143.     #kind = part(#line , 1, 3)
  1144.     #root = part(#line, 5, ##i-5)
  1145.     #destnum = part(#line, 9, ##i-9)
  1146.     @froot = @logdir+"\"+#forum+"\"
  1147. kind_next:
  1148.     switch #kind
  1149.         case "TPC"                            ; サブ目次へ移動
  1150.             #tpc = "TRUE"
  1151.             #dest = drop(#root, ",")
  1152.             #root = search(#root, ",")
  1153.             ##i = length(#root)
  1154.             if( ##i != 0 ) #root = part(#root, 1, ##i-1)
  1155.             if( length(#dest) == 0 )
  1156.                 #dest = #root
  1157.                 ##i = 0
  1158.             endif
  1159.             if( length(#dest) == 1 )
  1160.                 @froot = @froot+"SUB0"+#dest+"\"
  1161.             else
  1162.                 @froot = @froot+"SUB"+#dest+"\"
  1163.             endif
  1164.             send #dest+"^M"
  1165.             loopswitch
  1166.                 case "^M^J>"
  1167.                     if( ##i == 0 ) breakloop
  1168.                     #dest = drop(#root, ",")
  1169.                     #root = search(#root, ",")
  1170.                     ##i = length(#root)
  1171.                     if( ##i != 0 ) #root = part(#root, 1, ##i-1)
  1172.                     if( length(#dest) == 0 )
  1173.                         #dest = #root
  1174.                         ##i = 0
  1175.                     endif
  1176.                     if( length(#dest) == 1 )
  1177.                         @froot = @froot+"SUB0"+#dest+"\"
  1178.                     else
  1179.                         @froot = @froot+"SUB"+#dest+"\"
  1180.                     endif
  1181.                     @floor[@@layer] = #dest
  1182.                     @@layer = @@layer+1
  1183.                     send #dest+"^M"
  1184.                 case "^M^Jmore>"
  1185.                     send "E^M"
  1186.                 case "^M^JFORUM>"
  1187.                     breakloop
  1188.                 case "^M^JBBS>"
  1189.                     goto get_bbs
  1190.                 case "NetNews"
  1191.                     #inet = "TRUE"
  1192.             endloop
  1193.             readfile @padfile, #line
  1194.             ##i = length(#line)
  1195.             #kind = part(#line , 1, 3)
  1196.             #root = part(#line, 5, ##i-5)
  1197.             goto kind_next
  1198.         case "NWS"                                    ; ニュース取得
  1199.             send #root+"^M"
  1200.             loopswitch
  1201.                 case "^M^Jmore>"
  1202.                     breakloop
  1203.                 case "^M^J>"
  1204.                     breakloop
  1205.                 case "^M^JFORUM>"
  1206.                     breakloop
  1207.                 case "^M^JBBS>"
  1208.                     goto get_bbs
  1209.             endloop
  1210.             if( @logsel == "NORMAL" )
  1211.                 if( length(#root) == 1 )
  1212.                     #file = @froot+#forum+".M0"+#root    ; ログを開く
  1213.                 else
  1214.                     #file = @froot+#forum+".M"+#root    ; ログを開く
  1215.                 endif
  1216.             else
  1217.                 getdate #date
  1218.                 #file = "NIF"+part( #date, 2, 4 )+".LOG"
  1219.             endif
  1220.             readfile @padfile, #line
  1221.             ##i = length(#line)
  1222.             #p = part(#line , 2, ##i-2)
  1223.             send #p+"^M"
  1224.             log #file
  1225.             loopswitch
  1226.                 case "^M^J>"
  1227.                     log
  1228.                     breakloop
  1229.                 case "^M^Jnext>"
  1230.                     send "^M"
  1231.             endloop
  1232.             send "T^M"
  1233.             loopswitch
  1234.                 case "^M^J>"
  1235.                     return
  1236.                 case "^M^JNIFTY-Serve     TOP"
  1237.                     @here = "TOP"
  1238.             endloop
  1239.         case "MES"                                ; 本文読み込みか?
  1240.             if( @logsel == "NORMAL" )
  1241.                 if( length(#root) == 1)
  1242.                     #file = @froot+#forum+".M0"+#root
  1243.                 else
  1244.                     #file = @froot+#forum+".M"+#root
  1245.                 endif
  1246.             else
  1247.                 getdate #date
  1248.                 #file = "NIF"+part( #date, 2, 4 )+".LOG"
  1249.             endif
  1250.             call MoveMes #line, #2, "CCS", #file, #inet        ; 会議室移動
  1251.             if( @flag == "TRUE" ) return                    ; 会議室が存在しない
  1252.             readfile @padfile, #line
  1253.             ##i = length(#line)
  1254.             #p = part(#line, 1, ##i-1)
  1255.             #r = part(#line, 1, 4)
  1256.             if( #IsBul == "*MES 21" )
  1257.                 #s = part(#line, 2, ##i-2)
  1258.                 #p = "READ "+#s
  1259.                 #r = "READ"
  1260.             endif
  1261.             send #p+"^M"                        ; 本文を指定
  1262.             if( #r == "DOWN" )
  1263.                 wait  "^M^J:"
  1264.                 send "1^M"
  1265.                 wait "開始-"
  1266.             endif
  1267.             log #file
  1268.             loopswitch
  1269.                 case  postmilliidle(500) "^M^JCCS(N)>", postmilliidle(500) "^M^JCCS(P)>", postmilliidle(500) "^M^JBBS>", postmilliidle(500) "^M^J>"
  1270.                     log                            ; 本文読み込み終了
  1271.                     breakloop
  1272.                 case "^M^J◆番号"
  1273.                     wait  "^M^JCCS(N)>", "^M^JCCS(P)>", "^M^JBBS>"
  1274.                     if( #r == "DOWN" )
  1275.                         #line = part(#line, 6, ##i-6-length(search(#line, " PROT")))
  1276.                         ##i = length(#line)
  1277.                     else
  1278.                         #line = part(#line, 1, ##i-1)
  1279.                         ##i = ##i - 1
  1280.                     endif
  1281.                     beginloop
  1282.                         ##len = length(search(#line, ","))
  1283.                         #s = part(#line, 0, ##i-##len)
  1284.                         if( part(#s, 0, 1) == "#" )
  1285.                             send #s+"^M"
  1286.                         elseif( #r == "READ" )
  1287.                             send "READ "+#s+"^M"
  1288.                         else
  1289.                             send "#"+#s+"^M"
  1290.                         endif
  1291.                         wait  "^M^JCCS(N)>", "^M^JCCS(P)>", "^M^JBBS>"
  1292.                         #line = search(#line, ",")
  1293.                         ##i = length(#line)
  1294.                         #line = part(#line, 1, ##i-1)
  1295.                         ##i = ##i - 1
  1296.                         if( ##i <= 0 ) breakloop
  1297.                     endloop
  1298.                     breakloop
  1299.                 case postmilliidle(500) "^M^Jnext>"
  1300.                     send "^M"
  1301.             endloop
  1302.             if( #IsBul != "*MES 21" )
  1303.                 send "RC D^M"
  1304.                 wait  "^M^JCCS(N)>", "^M^JCCS(P)>", "^M^JBBS>"
  1305.             endif
  1306.             if( #tpc == "TRUE" )
  1307.                 send "T^M"
  1308.                 loopswitch
  1309.                     case "^M^JNIFTY-Serve     TOP"
  1310.                         @here = "TOP"
  1311.                     case "^M^J>"
  1312.                         breakloop
  1313.                     case "^M^JFORUM>"
  1314.                         send "T^M"
  1315.                     case "^M^JBBS>"
  1316.                         send "T^M"
  1317.                 endloop
  1318.             endif
  1319.         case "BUL"
  1320.             if( @logsel == "NORMAL" )
  1321.                 if( length(#root) == 1 )
  1322.                         #file = @froot+#forum+".M0"+#root
  1323.                     else
  1324.                         #file = @froot+#forum+".M"+#root
  1325.                     endif
  1326.                 endif
  1327.             else
  1328.                 getdate #date
  1329.                 #file = "NIF"+part( #date, 2, 4 )+".LOG"
  1330.             endif
  1331.             if( length(#root) == 1)
  1332.                 #list = @froot+#forum+".R0"+#root
  1333.             else
  1334.                 #list = @froot+#forum+".R"+#root
  1335.             endif
  1336.             send #root+"^M"
  1337.             loopswitch
  1338.                 case "^M^JBBS>"
  1339.                     breakloop
  1340.                 case "◆"
  1341.                     wait "^M^J>"
  1342.                     send "TT^M"
  1343.                 case "^M^J>"
  1344.                     timeoutmessage "掲示板へのアクセスに失敗しました", 3
  1345.                     call ErrorLog "掲示板へのアクセス失敗("+#forum+":BUL)"
  1346.                     return
  1347.             endloop
  1348.             call ReadBBSArticle #file, #list, "NORMAL", "TRUE"
  1349.             if( #tpc == "TRUE" )
  1350.                 send "T^M"
  1351.                 loopswitch
  1352.                     case "^M^JNIFTY-Serve     TOP"
  1353.                         @here = "TOP"
  1354.                     case "^M^J>"
  1355.                         breakloop
  1356.                     case "^M^JFORUM>"
  1357.                         send "T^M"
  1358.                     case "^M^JBBS>"
  1359.                         send "T^M"
  1360.                 endloop
  1361.             endif
  1362.             return
  1363.         case "TPB"
  1364.             if( @logsel == "NORMAL" )
  1365.                 if( length(#root) == 1 )
  1366.                         #file = @froot+#forum+".M0"+#root
  1367.                     else
  1368.                         #file = @froot+#forum+".M"+#root
  1369.                     endif
  1370.                 endif
  1371.             else
  1372.                 getdate #date
  1373.                 #file = "NIF"+part( #date, 2, 4 )+".LOG"
  1374.             endif
  1375.             if( length(#root) == 1)
  1376.                 #list = @froot+#forum+".R0"+#root
  1377.             else
  1378.                 #list = @froot+#forum+".R"+#root
  1379.             endif
  1380.             send #root+"^M"
  1381.             loopswitch
  1382.                 case "^M^JBBS>"
  1383.                     breakloop
  1384.                 case "◆"
  1385.                     wait "^M^J>"
  1386.                     send "TT^M"
  1387.                 case "^M^J>"
  1388.                     timeoutmessage "掲示板へのアクセスに失敗しました", 3
  1389.                     call ErrorLog "掲示板へのアクセス失敗("+#forum+":TPB)"
  1390.                     return
  1391.             endloop
  1392.             call ReadBBSArticle #file, #list, "NORMAL", "TRUE"
  1393.             if( #tpc == "TRUE" )
  1394.                 send "T^M"
  1395.                 loopswitch
  1396.                     case "^M^JNIFTY-Serve     TOP"
  1397.                         @here = "TOP"
  1398.                     case "^M^J>"
  1399.                         breakloop
  1400.                     case "^M^JFORUM>"
  1401.                         send "T^M"
  1402.                     case "^M^JBBS>"
  1403.                         send "T^M"
  1404.                 endloop
  1405.             endif
  1406.             return
  1407.         case "LIB"                            ; ライブラリのダウンか?
  1408.             if( @readreq == "TRUE" ) call DownMyArticle
  1409.             #p = part(#line, 1, ##i-1)
  1410.             if( #p != @library )                ; ライブラリ移動あり
  1411.                 send #p+"^M"
  1412.                 wait  "^M^JLIB>"
  1413.                 @library = #p
  1414.             endif
  1415.             readfile @padfile, #line
  1416.             ##i = length(#line)
  1417.             #p = part(#line, 1, ##i-1)
  1418.             switch #p
  1419.                 case "HOSOKU"
  1420.                     send "DOWN PROT:BPL^M"
  1421.                     wait  "^M^J:"
  1422.                     readfile @padfile, #line
  1423.                     readfile @padfile, #file
  1424.                     send #line+"^M"                        ; ファイル番号を指定
  1425.                     wait "^M^J:"
  1426.                     send "1^M"
  1427.                     ##i = length(#file)
  1428.                     #fhosoku = part( #file, 0, ##i-3 )
  1429.                     #fhosoku = @logdir+"\hosoku\"+#fhosoku+"ホソク"
  1430.                     createfile #fhosoku
  1431.                     writefile #fhosoku, #forum
  1432.                     writefile #fhosoku, @library
  1433.                     closefile #fhosoku
  1434.                     log #fhosoku
  1435.                     loopswitch
  1436.                         case  "^M^J:"
  1437.                             log
  1438.                             send "E^M"
  1439.                             breakloop
  1440.                         case "^M^J-該当するデータはありません-"
  1441.                             call ErrorLog "該当データ無し("+#forum+":HOSOKU)  "+#file
  1442.                             log
  1443.                             breakloop
  1444.                     endloop
  1445.                     wait  "^M^JLIB>"
  1446.                     if( #tpc == "TRUE" )
  1447.                         send "T^M"
  1448.                         loopswitch
  1449.                             case "^M^JNIFTY-Serve     TOP"
  1450.                                 @here = "TOP"
  1451.                             case "^M^J>"
  1452.                                 breakloop
  1453.                             case "^M^JFORUM>"
  1454.                                 send "T^M"
  1455.                             case "^M^JBBS>"
  1456.                                 send "T^M"
  1457.                         endloop
  1458.                         @library = "NULL"
  1459.                     endif
  1460.                 case "DOWN PROT:BPL"
  1461.                     send #p+"^M"                        ; ダウンロード方法を指定
  1462.                     wait  "^M^J:"
  1463.                     readfile @padfile, #line
  1464.                     readfile @padfile, #file
  1465.                     send #line+"^M"                        ; ファイル番号を指定
  1466.                     wait "^M^J:"
  1467.                     send "1^M"
  1468.                     if( @hosoku == "YES" )
  1469.                         ##i = length(#file)
  1470.                         #fhosoku = part( #file, 0, ##i-3 )
  1471.                         #fhosoku = @logdir+"\download\"+#fhosoku+"ホソク"
  1472.                         createfile #fhosoku
  1473.                         writefile #fhosoku, #forum
  1474.                         writefile #fhosoku, @library
  1475.                         closefile #fhosoku
  1476.                         log #fhosoku
  1477.                     endif
  1478.                     loopswitch
  1479.                         case  "^M^J:"
  1480.                             if( @hosoku == "YES" ) log
  1481.                             send "1^M"
  1482.                             wait  "^M^J:"
  1483.                             port autobplus = off
  1484.                             send #file+"^M"                        ; ファイル名を指定
  1485.                             wait "^E"
  1486.                             download #file, bplus
  1487.                             breakloop
  1488.                         case "^M^J-該当するデータはありません-"
  1489.                             if( @hosoku == "YES" ) log
  1490.                             call ErrorLog "該当データ無し("+#forum+":LIB)  "+#file
  1491.                             breakloop
  1492.                     endloop
  1493.                     wait  "^M^JLIB>"            ; ダウンロード終了
  1494.                     if( #tpc == "TRUE" )
  1495.                         send "T^M"
  1496.                         loopswitch
  1497.                             case "^M^JNIFTY-Serve     TOP"
  1498.                                 @here = "TOP"
  1499.                             case "^M^J>"
  1500.                                 breakloop
  1501.                             case "^M^JFORUM>"
  1502.                                 send "T^M"
  1503.                             case "^M^JBBS>"
  1504.                                 send "T^M"
  1505.                         endloop
  1506.                         @library = "NULL"
  1507.                     endif
  1508.                     port autobplus = on
  1509.                 case default
  1510.                     readfile @padfile, #file
  1511.                     send #p+"^M"                        ; ダウンロード方法を指定
  1512.                     loopswitch
  1513.                         case  "^M^J>"
  1514.                             breakloop
  1515.                         case "^M^J-該当するデータはありません-"
  1516.                             wait  "^M^JLIB>"            ; ダウンロード終了
  1517.                             call ErrorLog "該当データ無し("+#forum+":Def)  "+#file
  1518.                             return
  1519.                         case "^M^J◆番号"
  1520.                             wait  "^M^JLIB>"            ; ダウンロード終了
  1521.                             call ErrorLog "ダウンロード指定異常("+#forum+":Def)  "+#p
  1522.                             return
  1523.                     endloop
  1524.                     readbuffer 1,#line
  1525.                     #q = part( #line, 0, 4)
  1526.                     send #q+"^M"                        ; ファイル番号を指定
  1527.                     if( @hosoku == "YES" )
  1528.                         ##i = length(#file)
  1529.                         #fhosoku = part( #file, 0, ##i-3 )
  1530.                         #fhosoku = @logdir+"\"+#fhosoku+"ホソク"
  1531.                         createfile #fhosoku
  1532.                         writefile #fhosoku, #forum
  1533.                         writefile #fhosoku, @library
  1534.                         closefile #fhosoku
  1535.                         log #fhosoku
  1536.                     endif
  1537.                     loopswitch
  1538.                         case  "^M^J:"
  1539.                             if( @hosoku == "YES" ) log
  1540.                             send "1^M"
  1541.                             wait  "^M^J:"
  1542.                             port autobplus = off
  1543.                             send #file+"^M"                ; ファイル名を指定
  1544.                             wait "^E"
  1545.                             download #file, bplus
  1546.                             breakloop
  1547.                         case "^M^J-該当するデータはありません-"
  1548.                             if( @hosoku == "YES" ) log
  1549.                             call ErrorLog "該当データ無し("+#forum+":Def)  "+#file
  1550.                             breakloop
  1551.                     endloop
  1552.                     wait  "^M^JLIB>"            ; ダウンロード終了
  1553.                     if( #tpc == "TRUE" )
  1554.                         send "T^M"
  1555.                         loopswitch
  1556.                             case "^M^JNIFTY-Serve     TOP"
  1557.                                 @here = "TOP"
  1558.                             case "^M^J>"
  1559.                                 breakloop
  1560.                             case "^M^JFORUM>"
  1561.                                 send "T^M"
  1562.                             case "^M^JBBS>"
  1563.                                 send "T^M"
  1564.                         endloop
  1565.                         @library = "NULL"
  1566.                     endif
  1567.                     port autobplus = on
  1568.             endswitch
  1569.         case "BPL"
  1570.             if( @logsel == "NORMAL" )
  1571.                 if( length(#root) == 1)
  1572.                     #file = @froot+#forum+".M0"+#root
  1573.                 else
  1574.                     #file = @froot+#forum+".M"+#root
  1575.                 endif
  1576.             else
  1577.                 getdate #date
  1578.                 #file = "NIF"+part( #date, 2, 4 )+".LOG"
  1579.             endif
  1580.             call MoveMes #line, #2, "CCS", #file, #inet        ; 会議室移動
  1581.             if( @flag == "TRUE" ) return                    ; 会議室が存在しない
  1582.             readfile @padfile, #line
  1583.             ##i = length(#line)
  1584.             #p = part(#line, 1, ##i-1)
  1585.             ##count = 0
  1586. BPLEnt:
  1587.             send #p+"^M"                                ; ダウンロード指定
  1588.             wait  "^M^J:"
  1589.             port autobplus = off
  1590.             send #file+"^M"                                ; ファイル名指定
  1591.             wait "^E"
  1592.             download #file, bplus, append
  1593.             loopswitch
  1594.                 case "+0B1"
  1595.                     ##count = ##count+1
  1596.                     if(##count > 10)
  1597.                         timeoutmessage "BPlusによるファイル転送ができません", 3
  1598.                         call ErrorLog "BPlus転送失敗("+#forum+":BPL) "+#file
  1599.                         breakloop
  1600.                     endif
  1601.                     sendbreak
  1602.                     wait "^M^JCCS(N)>", "^M^JCCS(P)>", "^M^JBBS>"
  1603.                     goto BPLEnt
  1604.                 case  "^M^JCCS(N)>", "^M^JCCS(P)>", "^M^JBBS>"
  1605.                     breakloop
  1606.             endloop
  1607.             port autobplus = on
  1608.             if( #tpc == "TRUE" )
  1609.                 send "T^M"
  1610.                 loopswitch
  1611.                     case "^M^JNIFTY-Serve     TOP"
  1612.                         @here = "TOP"
  1613.                     case "^M^J>"
  1614.                         breakloop
  1615.                     case "^M^JFORUM>"
  1616.                         send "T^M"
  1617.                     case "^M^JBBS>"
  1618.                         send "T^M"
  1619.                 endloop
  1620.             endif
  1621.             return
  1622.         case "BPB"
  1623.             if( @logsel == "NORMAL" )
  1624.                 if( length(#root) == 1 )
  1625.                         #file = @froot+#forum+".M0"+#root
  1626.                     else
  1627.                         #file = @froot+#forum+".M"+#root
  1628.                     endif
  1629.                 endif
  1630.             else
  1631.                 getdate #date
  1632.                 #file = "NIF"+part( #date, 2, 4 )+".LOG"
  1633.             endif
  1634.             if( length(#root) == 1)
  1635.                 #list = @froot+#forum+".R0"+#root
  1636.             else
  1637.                 #list = @froot+#forum+".R"+#root
  1638.             endif
  1639.             send #root+"^M"
  1640.             loopswitch
  1641.                 case "^M^JBBS>"
  1642.                     breakloop
  1643.                 case "◆"
  1644.                     wait "^M^J>"
  1645.                     send "TT^M"
  1646.                 case "^M^J>"
  1647.                     timeoutmessage "掲示板へのアクセスに失敗しました", 3
  1648.                     call ErrorLog "掲示板へのアクセス失敗("+#forum+":BPB)"
  1649.                     return
  1650.             endloop
  1651.             call ReadBBSArticle #file, #list, "BPLUS", "FALSE"
  1652.             if( #tpc == "TRUE" )
  1653.                 send "T^M"
  1654.                 loopswitch
  1655.                     case "^M^JNIFTY-Serve     TOP"
  1656.                         @here = "TOP"
  1657.                     case "^M^J>"
  1658.                         breakloop
  1659.                     case "^M^JFORUM>"
  1660.                         send "T^M"
  1661.                     case "^M^JBBS>"
  1662.                         send "T^M"
  1663.                 endloop
  1664.             endif
  1665.             return
  1666.         case "BPT"
  1667.             if( @logsel == "NORMAL" )
  1668.                 if( length(#root) == 1 )
  1669.                         #file = @froot+#forum+".M0"+#root
  1670.                     else
  1671.                         #file = @froot+#forum+".M"+#root
  1672.                     endif
  1673.                 endif
  1674.             else
  1675.                 getdate #date
  1676.                 #file = "NIF"+part( #date, 2, 4 )+".LOG"
  1677.             endif
  1678.             if( length(#root) == 1)
  1679.                 #list = @froot+#forum+".R0"+#root
  1680.             else
  1681.                 #list = @froot+#forum+".R"+#root
  1682.             endif
  1683.             send #root+"^M"
  1684.             loopswitch
  1685.                 case "^M^JBBS>"
  1686.                     breakloop
  1687.                 case "◆"
  1688.                     wait "^M^J>"
  1689.                     send "TT^M"
  1690.                 case "^M^J>"
  1691.                     timeoutmessage "掲示板へのアクセスに失敗しました", 3
  1692.                     call ErrorLog "掲示板へのアクセス失敗("+#forum+":BPT)"
  1693.                     return
  1694.             endloop
  1695.             call ReadBBSArticle #file, #list, "BPLUS", "TRUE"
  1696.             if( #tpc == "TRUE" )
  1697.                 send "T^M"
  1698.                 loopswitch
  1699.                     case "^M^JNIFTY-Serve     TOP"
  1700.                         @here = "TOP"
  1701.                     case "^M^J>"
  1702.                         breakloop
  1703.                     case "^M^JFORUM>"
  1704.                         send "T^M"
  1705.                     case "^M^JBBS>"
  1706.                         send "T^M"
  1707.                 endloop
  1708.             endif
  1709.             return
  1710.         case "MOV"                                ; 未読位置の変更
  1711.             #line = "*MES "+#root
  1712.             call MoveMes #line, #2, "CCS", "NULL", #inet    ; 会議室移動
  1713.             if( @flag == "TRUE" ) return                    ; 会議室が存在しない
  1714.             readfile @padfile, #line
  1715.             ##i = length(#line)
  1716.             #p = part(#line, 1, ##i-1)
  1717.             send #p+"^M"
  1718.             loopswitch
  1719.                 case "^M^J>"
  1720.                     breakloop
  1721.                 case "^M^JCCS(N)>"
  1722.                     breakloop
  1723.                 case "^M^JCCS(P)>"
  1724.                     breakloop
  1725.                 case "^M^JPATIO(N)>"
  1726.                     breakloop
  1727.                 case "^M^JPATIO(P)>"
  1728.                     breakloop
  1729.                 case "^M^JBBS>"
  1730.                     breakloop
  1731.             endloop
  1732.             return
  1733.         case "ANN"                                ; お知らせ一覧の取得
  1734.             log @logdir+"\"+#forum+".ann"
  1735.             send "ann^M"
  1736.             loopswitch
  1737.                 case "^M^J>"
  1738.                     breakloop
  1739.                 case "next>"
  1740.                     send "^M"
  1741.                 case "^M^JFORUM>"
  1742.                     breakloop
  1743.             endloop
  1744.             log
  1745.             return
  1746.         case "REA"                                ; お知らせ一覧の取得
  1747.             send "ann^M"
  1748.             wait "^M^J>"
  1749.             send #destnum+"^M"
  1750.             log @froot+#forum+".ann"
  1751.             loopswitch
  1752.                 case "^M^J>"
  1753.                     breakloop
  1754.                 case "next>"
  1755.                     send "^M"
  1756.                 case "^M^JFORUM>"
  1757.                     breakloop
  1758.             endloop
  1759.             log
  1760.             return
  1761.     endswitch
  1762. return
  1763.  
  1764. ;*********** ホームパティオから情報を読み込む  *************
  1765.  
  1766. Patio:
  1767.     title #1+"から受信中"
  1768.     readfile @ttlfile, #id                    ; パティオ情報を読み込む
  1769.     readfile @ttlfile, #password
  1770.  
  1771.     if( #2 == "FALSE" )
  1772.         call AccessPatio #id, #password, #1
  1773.         if (@flag == "TRUE" ) return
  1774.     endif
  1775.     #buf = #1+".FRM"
  1776.     chdir log
  1777.     openfile #buf
  1778.     if ( no )
  1779.         closefile #buf
  1780.         restoredir
  1781.         timeoutmessage "ログをオープン出来ませんでした", 3
  1782.         call ErrorLog "ログオープン失敗("+#1+")"
  1783.     endif
  1784.     #flag = "FALSE"
  1785.     #mes = "NO"
  1786.     beginloop
  1787.         readfile #buf, #list
  1788.         if( #list == ">" )
  1789.             closefile #buf
  1790.             restoredir
  1791.             breakloop
  1792.         endif
  1793.         if( #flag == "TRUE" )
  1794.             if( part(#list, 12, 4) == "   0" )
  1795.                 #mes = "NO"
  1796.             else
  1797.                 #mes = "YES"
  1798.             endif
  1799.         endif
  1800.         if( #list == "番号 発言 (未読)  最新  会議室名" ) #flag = "TRUE"
  1801.     endloop
  1802.     if( #3 == "*DOWNTITLE" )
  1803.         if( #mes == "YES" )
  1804.             send "RTN^M"
  1805.             loopswitch
  1806.                 case "題名"
  1807.                     log @logdir+"\PATIO\"+#1+".R01"
  1808.                     wait "^M^J>"
  1809.                     log
  1810.                     send "^M"
  1811.                     wait  "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  1812.                     send "RC MAX^M"
  1813.                     wait  "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  1814.                     breakloop
  1815.                 case "ありません◆"
  1816.                     wait "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  1817.                     breakloop
  1818.             endloop
  1819.             log
  1820.         endif
  1821.     else
  1822.         if( #mes == "YES" )
  1823.             if( @mrebpl == "NO" )
  1824.                 title #1+"から本文受信中(MREad)"
  1825.                 if( @logsel == "NORMAL" )
  1826.                     #dest = @logdir+"\PATIO\"+#1+".M01"        ; ログを開く
  1827.                 else
  1828.                     getdate #date
  1829.                     #dest = "NIF"+part( #date, 2, 4 )+".LOG"
  1830.                 endif
  1831.                 send "MRE ROOM:1 MODE:NEW^M"
  1832.                 log #dest
  1833.                 wait  postmilliidle(500) "^M^JPATIO(N)>", postmilliidle(500) "^M^JPATIO(P)>"
  1834.                 log
  1835.             else
  1836.                 title #1+"から本文受信中(BPlus)"
  1837.                 if( @logsel == "NORMAL" )
  1838.                     #dest = @logdir+"\PATIO\"+#1+".M01"        ; ログを開く
  1839.                 else
  1840.                     getdate #date
  1841.                     #dest = "NIF"+part( #date, 2, 4 )+".LOG"
  1842.                 endif
  1843.                 ##count = 0
  1844. PatioEnt:
  1845.                 port autobplus = off
  1846.                 send "DOWN NEW PROT:BPL^M"                ; ダウンロード指定
  1847.                 loopswitch
  1848.                     case "^M^J:"
  1849.                         send #dest+"^M"                    ; ファイル名指定
  1850.                         wait "^E"
  1851.                         download #dest, bplus, append
  1852.                         loopswitch
  1853.                             case "+0B1"
  1854.                                 ##count = ##count+1
  1855.                                 if(##count > 10)
  1856.                                     timeoutmessage "BPlusによるファイル転送ができません", 3
  1857.                                     call ErrorLog "BPlus転送失敗("+#1+")"
  1858.                                     breakloop
  1859.                                 endif
  1860.                                 sendbreak
  1861.                                 wait "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  1862.                                 goto PatioEnt
  1863.                             case  "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  1864.                                 breakloop
  1865.                         endloop
  1866.                         port autobplus = on
  1867.                         breakloop
  1868.                     case "^M^J◆現在、未読の"
  1869.                         wait  "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  1870.                         breakloop
  1871.                 endloop
  1872.             endif
  1873.         endif
  1874.     endif
  1875. return
  1876.  
  1877. ;********* ホームパティオから情報をダウンロード  **********
  1878.  
  1879. DownPatio:
  1880.     ##i = length(#1)
  1881.     #fname = part(#1, 4, ##i-4)
  1882.     title #fname+"から受信中"
  1883.     ##i = 0
  1884.     beginloop
  1885.         if( @pationame[##i] == #fname )
  1886.             #id = @patioid[##i]
  1887.             #password = @patiopasswd[##i]
  1888.             breakloop
  1889.         elseif( @pationame[##i] == "END" )
  1890.             timeoutmessage "ホームパティオ情報に誤りがあります", 3
  1891.             call ErrorLog "ホームパティオ情報異常("+#fname+")"
  1892.             readfile @padfile, #line
  1893.             readfile @padfile, #line
  1894.             return
  1895.         endif
  1896.         ##i = ##i + 1
  1897.     endloop
  1898.     if( #2 == "FALSE" )
  1899.         call AccessPatio #id, #password, #fname
  1900.         if (@flag == "TRUE" ) return
  1901.     endif
  1902.     readfile @padfile, #line
  1903.     #kind = part(#line, 1, 3)
  1904.     switch #kind
  1905.         case "MES"
  1906.             readfile @padfile, #line
  1907.             ##i = length(#line)
  1908.             #p = part(#line, 1, ##i-1)
  1909.             send #p+"^M"                            ; 本文を指定
  1910.             if( @logsel == "NORMAL" )
  1911.                 log @logdir+"\PATIO\"+#fname+".M01"            ; ログを開く
  1912.             else
  1913.                 getdate #date
  1914.                 log "NIF"+part( #date, 2, 4 )+".LOG"
  1915.             endif
  1916.             loopswitch
  1917.                 case  postmilliidle(500) "^M^J:"
  1918.                     send "1^M"
  1919.                 case  postmilliidle(500) "^M^JPATIO(N)>", postmilliidle(500) "^M^JPATIO(P)>"
  1920.                     log                                        ; 本文読み込み終了
  1921.                     send "RC D^M"
  1922.                     breakloop
  1923.                 case postmilliidle(500) "^M^Jnext>"
  1924.                     send "^M"
  1925.             endloop
  1926.             wait  "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  1927.         case "BPL"
  1928.             if( @logsel == "NORMAL" )
  1929.                 #file = @logdir+"\PATIO\"+#fname+".M01"
  1930.             else
  1931.                 getdate #date
  1932.                 #file = "NIF"+part( #date, 2, 4 )+".LOG"
  1933.             endif
  1934.             readfile @padfile, #line
  1935.             ##i = length(#line)
  1936.             #p = part(#line, 1, ##i-1)
  1937.             ##count = 0
  1938. DPatioEnt:
  1939.             send #p+"^M"                                ; ダウンロード指定
  1940.             wait  "^M^J:"
  1941.             port autobplus = off
  1942.             send #file+"^M"                                ; ファイル名指定
  1943.             wait "^E"
  1944.             download #file, bplus, append
  1945.             loopswitch
  1946.                 case "+0B1"
  1947.                     ##count = ##count+1
  1948.                     if(##count > 10)
  1949.                         timeoutmessage "BPlusによるファイル転送ができません", 3
  1950.                         call ErrorLog "BPlus転送失敗("+#fname+")"
  1951.                         breakloop
  1952.                     endif
  1953.                     sendbreak
  1954.                     wait "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  1955.                     goto DPatioEnt
  1956.                 case  "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  1957.                     breakloop
  1958.             endloop
  1959.             port autobplus = on
  1960.     endswitch
  1961. return
  1962.  
  1963. ;*********** ホームパーティから情報を読み込む  *************
  1964.  
  1965. Hp:
  1966.     title #1+"から受信中"
  1967.     readfile @ttlfile, #id                    ; HP情報を読み込む
  1968.     readfile @ttlfile, #password
  1969.  
  1970.     if( #2 == "FALSE" )
  1971.         call AccessHP #id, #password
  1972.         if (@flag == "TRUE" ) return
  1973.     endif
  1974.     if( @logsel == "NORMAL" )
  1975.         log @logdir+"\HP\"+#1
  1976.     else
  1977.         getdate #date
  1978.         log "NIF"+part( #date, 2, 4 )+".LOG"
  1979.     endif
  1980.     send "READ NEW^M"
  1981.     wait  postmilliidle(500) "^M^JHP>"
  1982.     log
  1983. return
  1984.  
  1985. ;************** 掲示板から情報を読み込む  ****************
  1986.  
  1987. ReadBBSArticle:
  1988.     if( #4 == "TRUE" )
  1989.         ##br = 35
  1990.     else
  1991.         ##br = 30
  1992.     endif
  1993.     openfile #2
  1994.     while(#buf1 != "番号")
  1995.         readfile #2, #buf
  1996.         if( no ) breakloop
  1997.         #buf1 = part(#buf, 0, 4)
  1998.     endwhile
  1999.     readfile #2, #buf
  2000.     ##len = length(#buf)
  2001.     if( ##len > ##br )
  2002.         #scan = part(#buf, ##br, ##len-##br)
  2003.     else
  2004.         closefile #2
  2005.         timeoutmessage "掲示板リストが見つかりません", 3
  2006.         call ErrorLog "掲示板リストが見つからない("+#2+")"
  2007.         send "E^M"
  2008.         loopswitch
  2009.             case "^M^JBBS>"
  2010.                 send "E^M"
  2011.             case "^M^J>"
  2012.                 return
  2013.         endloop
  2014.         return
  2015.     endif
  2016.     closefile #2
  2017.     send "READ^M"
  2018.     loopswitch
  2019.         case #scan
  2020.             sendbreak
  2021.         case "^M^J>"
  2022.             send "E^M"
  2023.         case "^M^JBBS>"
  2024.             breakloop
  2025.     endloop
  2026.     ##i = 2
  2027.     while(#buf != #scan)
  2028.         if(( ##i > 500 ) or (#buf == "題名"))
  2029.             timeoutmessage "掲示板リストの先頭が見つかりません", 3
  2030.             call ErrorLog "掲示板リストが古すぎる"
  2031.             send "E^M"
  2032.             loopswitch
  2033.                 case "^M^JBBS>"
  2034.                     send "E^M"
  2035.                 case "^M^J>"
  2036.                     return
  2037.             endloop
  2038.             return
  2039.         endif
  2040.         readbuffer ##i, #buf1
  2041.         ##len = length(#buf1)
  2042.         if( ##len > ##br )
  2043.             #buf = part(#buf1, ##br, ##len-##br)
  2044.         else
  2045.             #buf = ""
  2046.         endif
  2047.         ##i = ##i+1
  2048.     endwhile
  2049.     readbuffer ##i-1, #buf
  2050.     #scan = part(#buf, 0, 3)
  2051.     ##val = value(#scan)-1
  2052.  
  2053.     readfile @padfile, #line
  2054.     ##i = length(#line)
  2055.     if( #3 == "BPLUS" )
  2056.         #line = part(#line, 6, ##i-15)
  2057.         ##i = ##i - 15
  2058.         #p = "DOWN "
  2059.     else
  2060.         #line = part(#line, 1, ##i-1)
  2061.         ##i = ##i - 1
  2062.         #p = "READ "
  2063.     endif
  2064.     ##tmp = 0
  2065.     beginloop
  2066.         ##len = length(search(#line, ","))
  2067.         #s = part(#line, 0, ##i-##len)
  2068.         openfile #2
  2069.         #t = "0"
  2070.         while(value(#s)+##val != value(#t))
  2071.             readfile #2, #buf
  2072.             if( no )
  2073.                 timeoutmessage "掲示板リスト検索に失敗しました", 3
  2074.                 call ErrorLog "掲示板リスト検索失敗"
  2075.                 send "E^M"
  2076.                 loopswitch
  2077.                     case "^M^JBBS>"
  2078.                         send "E^M"
  2079.                     case "^M^J>"
  2080.                         return
  2081.                 endloop
  2082.                 return
  2083.             endif
  2084.             #t = part(#buf, 0, 3)
  2085.         endwhile
  2086.         closefile #2
  2087.         #s = part(#buf, 0, 3)
  2088.         while(part(#s, 0, 1) == " ")
  2089.             ##len = length(#s)
  2090.             #s = part(#s, 1, ##len-1)
  2091.         endwhile
  2092.         if( ##tmp == 0 )
  2093.             #p = #p + #s
  2094.             ##tmp = 1
  2095.         else
  2096.             #p = #p+","+#s
  2097.         endif
  2098.         #line = search(#line, ",")
  2099.         ##i = length(#line)
  2100.         #line = part(#line, 1, ##i-1)
  2101.         ##i = ##i - 1
  2102.         if( ##i <= 0 ) breakloop
  2103.     endloop
  2104.  
  2105.     if( #3 == "BPLUS" )
  2106.         #p = #p+" PROT:BPLUS"
  2107.         ##count = 0
  2108. RBBSEnt:
  2109.         send #p+"^M"                        ; 本文を指定
  2110.         wait  "^M^J:"
  2111.         port autobplus = off
  2112.         send #1+"^M"                                ; ファイル名指定
  2113.         wait "^E"
  2114.         download #1, bplus, append
  2115.         loopswitch
  2116.             case "+0B1"
  2117.                 ##count = ##count+1
  2118.                 if(##count > 10)
  2119.                     timeoutmessage "BPlusによるファイル転送ができません", 3
  2120.                     call ErrorLog "BPlus転送失敗(掲示板)"
  2121.                     breakloop
  2122.                 endif
  2123.                 sendbreak
  2124.                 wait "^M^JBBS>", "^M^J>"
  2125.                 goto RBBSEnt
  2126.             case  "^M^JBBS>", "^M^J>"
  2127.                 breakloop
  2128.         endloop
  2129.         port autobplus = on
  2130.     else
  2131.         send #p+"^M"                        ; 本文を指定
  2132.         log #1
  2133.         loopswitch
  2134.             case  postmilliidle(500) "^M^JBBS>"
  2135.                 log                            ; 本文読み込み終了
  2136.                 breakloop
  2137.             case postmilliidle(500) "^M^J>"
  2138.                 send "^M"
  2139.             case "^M^J◆番号"
  2140.                 wait  "^M^JBBS>"
  2141.                 timeoutmessage "指定したリストの内容がありません", 3
  2142.                 call ErrorLog "掲示板リスト指定ミス "+#p
  2143.                 breakloop
  2144.             case postmilliidle(500) "^M^Jnext>"
  2145.                 send "^M"
  2146.             case "^M^J現在、サービスは大変混雑しています"
  2147.                 wait  "^M^JBBS>", "^M^J>"
  2148.                 call ErrorLog "掲示板混雑により巡回拒否 "+#p
  2149.                 breakloop
  2150.         endloop
  2151.     endif
  2152.     send "E^M"
  2153.     wait "^M^J>"
  2154. return
  2155.  
  2156. ;***** BPlusを使ってフォーラムから未読文章をすべて読み込む  ******
  2157.  
  2158. AllBPlus:
  2159.     title #1+"から本文受信中(BPlus)"
  2160.     if( @logsel == "NORMAL" )
  2161.         #dest = @logdir+"\"+#1+"\"+#1
  2162.         #dest = #dest+".M"+#2                        ; ログを開く
  2163.     else
  2164.         getdate #date
  2165.         #dest = "NIF"+part( #date, 2, 4 )+".LOG"
  2166.     endif
  2167.     port autobplus = off
  2168.     ##count = 0
  2169. ABBSEnt:
  2170.     send "DOWN NEW PROT:BPL^M"                    ; ダウンロード指定
  2171.     loopswitch
  2172.         case "^M^J:"
  2173.             send #dest+"^M"                                ; ファイル名指定
  2174.             wait "^E"
  2175.             download #dest, bplus, append
  2176.             loopswitch
  2177.                 case "+0B1"
  2178.                     ##count = ##count+1
  2179.                     if(##count > 10)
  2180.                         timeoutmessage "BPlusによるファイル転送ができません", 3
  2181.                         call ErrorLog "BPlus転送失敗("+#1+":AllBPlus)"
  2182.                         breakloop
  2183.                     endif
  2184.                     sendbreak
  2185.                     wait "^M^JCCS(N)>", "^M^JCCS(P)>"
  2186.                     goto ABBSEnt
  2187.                 case  "^M^JCCS(N)>", "^M^JCCS(P)>"
  2188.                     breakloop
  2189.             endloop
  2190.             port autobplus = on
  2191.             breakloop
  2192.         case "^M^J◆現在、未読の"
  2193.             wait  "^M^JCCS(N)>", "^M^JCCS(P)>"
  2194.             breakloop
  2195.     endloop
  2196. return
  2197.  
  2198. ;***** MREadを使ってフォーラムから未読文章をすべて読み込む  ******
  2199.  
  2200. AllMread:
  2201.     title #1+"から本文受信中(MREad)"
  2202.     if( @logsel == "NORMAL" )
  2203.         #dest = @logdir+"\"+#1+"\"+#1
  2204.         #dest = #dest+".M"+#2                        ; ログを開く
  2205.     else
  2206.         getdate #date
  2207.         #dest = "NIF"+part( #date, 2, 4 )+".LOG"
  2208.     endif
  2209.     send "MRE ROOM:"+#2+" MODE:NEW^M"            ; ダウンロード指定
  2210.     log #dest
  2211.     wait  postmilliidle(500) "^M^JCCS(N)>", postmilliidle(500) "^M^JCCS(P)>"
  2212.     log
  2213. return
  2214.  
  2215. ;***************** 電子メールを送信する  *****************
  2216.  
  2217. SendMail:
  2218.     ##len = length(#1)
  2219.     if( ##len != 0 )
  2220.         title #1+"店長宛メール送信中"
  2221.     else
  2222.         title "電子メール送信中"
  2223.     endif
  2224.     ##i = 0
  2225.     beginloop
  2226.         readfile @padfile, #line[##i]
  2227.         #p = part(#line[##i], 0, 3)
  2228.         if( #p == "SUB" ) #sub = #line[##i]
  2229.         if( #p == "TO:" ) #id  = #line[##i]
  2230.         ##i = ##i + 1
  2231.         if( ##i > 3 ) breakloop
  2232.     endloop
  2233.     #file = @logdir+"\mail."
  2234.     getdate #date
  2235.     #year = part(#date, 0, 2)
  2236.     #month = part(#date, 2, 2)
  2237.     #day = part(#date, 4, 2)
  2238.     gettime #time
  2239.     #hour = part(#time, 0, 2)
  2240.     #min = part(#time, 2, 2)
  2241.     ##i = length(#sub)
  2242.     if( ##i > 24 )
  2243.         #sub = part(#sub, 4, 20)
  2244.     else
  2245.         #sub = part(#sub, 4, ##i-4)
  2246.     endif
  2247.     if( ##len != 0 )
  2248.         #id = "   "+#1+"                  "
  2249.     else
  2250.         #id = #id+"                  "
  2251.     endif
  2252.     #id = part(#id, 3, 17)
  2253.     #title = "^M^J^M^J 0  【メール送信】    "+#id+" "+#year+"/"+#month+"/"+#day+" "+#hour+":"+#min+" "+#sub
  2254.  
  2255.     appendfile #file
  2256.     if( no ) createfile #file
  2257.     ##i = 0
  2258.     if( ##len != 0 )
  2259.         send "1^M"
  2260.     else
  2261.         if( @here != "MAIL" )
  2262.             if( #line[0] == "*MEXP" )
  2263.                 ##i = 1
  2264.                 send "GO MAIL^M"
  2265.                 wait "^M^JMAIL>"
  2266.                 send "MEXP^M"
  2267.                 wait "^M^JMAIL>"
  2268.                 send "COM^M"
  2269.             else
  2270.                 send "SMAIL^M"
  2271.             endif
  2272.         else
  2273.             if( #line[0] == "*MEXP" )
  2274.                 ##i = 1
  2275.                 send "MEXP^M"
  2276.                 wait "^M^JMAIL>"
  2277.             endif
  2278.             send "COM^M"
  2279.         endif
  2280.     endif
  2281.     wait "終了は行頭で/E)", "修正編集は 300行迄です)"
  2282.     writefile #file, #title
  2283.     while( ##i <= 3 )
  2284.         send #line[##i]+"^M"
  2285.         writefile #file, #line[##i]
  2286.         ##i = ##i + 1
  2287.     endwhile
  2288.     readfile @padfile, #line
  2289.     writefile #file, #line
  2290.     while( (#line != "/E") AND (#line != "/POST") )
  2291.         #com = part(#line, 0, 2)
  2292.         if( ( @comment == "NO" ) OR ( #com != "//" ) ) send #line+"^M"
  2293.         readfile @padfile, #line
  2294.         if( no )
  2295.             send "/POST^M"
  2296.             #line = "/POST"
  2297.         endif
  2298.         writefile #file, #line
  2299.     endwhile
  2300.     closefile #file
  2301.     send #line+"^M"
  2302.     if( #line == "/E" )
  2303.         wait  "^M^J:"
  2304.         send "2^M"
  2305.         wait  "^M^J:"
  2306.         send "1^M"
  2307.     endif
  2308.     loopswitch
  2309.         case "不在通知:^M^J"
  2310.             log #file
  2311.         case "^M^JMAIL>"
  2312.             @here = "MAIL"
  2313.             breakloop
  2314.         case "^M^JCCS(N)>", "^M^JCCS(P)>", "^M^JPATIO(N)>", "^M^JHP>", "^M^JLIB>", "^M^JBBS>"
  2315.             breakloop
  2316.         case "^M^JFORUM>"
  2317.             breakloop
  2318.         case "^M^J>"
  2319.             @here = "UNKNOWN"
  2320.             breakloop
  2321.         case "^M^J:"
  2322.             send "^M"
  2323.     endloop
  2324.     log
  2325. return
  2326.  
  2327. ;************** バイナリーメールを送信する  ***************
  2328.  
  2329. SendBMail:
  2330.     title "バイナリーメール送信中"
  2331.     if( @here != "MAIL" )
  2332.         send "MAIL^M"
  2333.         loopswitch
  2334.             case "^M^JMAIL>"
  2335.                 breakloop
  2336.             case "^M^J>"
  2337.                 breakloop
  2338.         endloop
  2339.         @here = "MAIL"
  2340.     endif
  2341.     readfile @padfile, #line
  2342.     ##i = length(#line)
  2343.     #p = part(#line, 1, ##i-1)
  2344.     send #p+"^M"                            ; プロトコル指定
  2345.     wait  "^M^J:"
  2346.     port autobplus = off
  2347.     readfile @padfile, #file
  2348.     send #file+"^M"                            ; ファイル名指定
  2349.     wait  "開始-"
  2350.     upload #file, bplus
  2351.     wait  "^M^J:"
  2352.     port autobplus = on
  2353.     readfile @padfile, #ttl
  2354.     send #ttl+"^M"                            ; タイトル指定
  2355.     wait  "^M^J:"
  2356.     send "1^M"
  2357.     wait  "^M^J:"
  2358.     readfile @padfile, #id
  2359.     send #id+"^M"                            ; 送付先送信
  2360.     loopswitch
  2361.         case "送信(1:送信する  2:しない"
  2362.             wait  "^M^J:"
  2363.             send "1^M"
  2364.         case "^M^JMAIL>"    ; 送信終了
  2365.             breakloop
  2366.         case "^M^J>"        ; 送信終了
  2367.             breakloop
  2368.         case "(1:OK  2:NG)"
  2369.             wait  "^M^J:"
  2370.             send "1^M"
  2371.             wait  "^M^J:"
  2372.             readfile @padfile, #line
  2373.             send #line+"^M"                    ; 送付先複数送信
  2374.         case "送信 (1:送信する 2:しない"
  2375.             wait  "^M^J:"
  2376.             send "1^M"
  2377.     endloop
  2378.     #file = @logdir+"\mail."
  2379.     getdate #date
  2380.     #year = part(#date, 0, 2)
  2381.     #month = part(#date, 2, 2)
  2382.     #day = part(#date, 4, 2)
  2383.     gettime #time
  2384.     #hour = part(#time, 0, 2)
  2385.     #min = part(#time, 2, 2)
  2386.     ##i = length(#ttl)
  2387.     if( ##i > 20 )
  2388.         #ttl = part(#ttl, 0, 20)
  2389.     endif
  2390.     #id = #id+"                  "
  2391.     #id = part(#id, 0, 17)
  2392.     #title = "^M^J^M^J 0  【B-Mail送信】    "+#id+" "+#year+"/"+#month+"/"+#day+" "+#hour+":"+#min+" "+#ttl
  2393.  
  2394.     appendfile #file
  2395.     if( no ) createfile #file
  2396.     writefile #file, #title
  2397.     closefile #file
  2398. return
  2399.  
  2400. ;***************** 送信した電子メールをキャンセルする  *****************
  2401.  
  2402. DelMail:
  2403.     readfile @padfile, #line
  2404.     readfile @padfile, #mes
  2405.     title #line+"へ送信した電子メールをキャンセルします"
  2406.     #file = @logdir+"\mail."
  2407.     getdate #date
  2408.     #year = part(#date, 0, 2)
  2409.     #month = part(#date, 2, 2)
  2410.     #day = part(#date, 4, 2)
  2411.     gettime #time
  2412.     #hour = part(#time, 0, 2)
  2413.     #min = part(#time, 2, 2)
  2414.     ##i = length(#mes)
  2415.     if( ##i > 24 ) #mes = part(#mes, 0, 24)
  2416.     #title = "^M^J^M^J 0  【メール削除】    "+#line+"          "+#year+"/"+#month+"/"+#day+" "+#hour+":"+#min+" "+#mes
  2417.  
  2418.     appendfile #file
  2419.     if( no ) createfile #file
  2420.     writefile #file, #title
  2421.     closefile #file
  2422.     readbuffer 0, #buf
  2423.     if( #buf != "MAIL>" )
  2424.         send "MAIL^M"
  2425.         wait "^M^JMAIL>"
  2426.         @here = "MAIL"
  2427.     endif
  2428.     log "MAIL."
  2429.     send "CAN "+#line+"^M"
  2430.     loopswitch
  2431.         case "^M^J>"
  2432.             breakloop
  2433.         case "^M^J◆削除対象テキストがありません◆"
  2434.             wait "^M^JMAIL>"
  2435.             timeoutmessage "既に相手がメールを読んでしまいました(^^;)", 3
  2436.             call ErrroLog "メール削除失敗 "+#line
  2437.             return
  2438.     endloop
  2439.     send "1^M"
  2440.     wait "^M^J:"
  2441.     log
  2442.     send #mes+"^M"
  2443.     wait "^M^J:"
  2444.     send "1^M"
  2445.     wait "^M^J:"
  2446.     send "^M"
  2447.     wait "^M^JMAIL>"
  2448.     return
  2449.  
  2450. ;****************** フォーラムへの書き込み  *******************
  2451. SendMes:
  2452.     #tpc = "FALSE"
  2453.     #inet = "FALSE"
  2454.     ##i = length(#1)
  2455.     #forum = part(#1, 4, ##i-4)
  2456.     if( #forum == "bbs" )
  2457.         title "掲示板へ送信中"
  2458.         #3 = "BBS"
  2459.     else
  2460.         title #forum+"へ送信中"
  2461.     endif
  2462.     if( #2 == "FALSE" )
  2463.         @get = "FALSE"
  2464.         if( #3 == "FORUM" )
  2465.             call AccessForum #1                    ; フォーラムを移動する
  2466.         else
  2467.             call AccessTopic #1
  2468.         endif
  2469.         if( @flag == "TRUE" ) return        ; フォーラムが存在しない
  2470.     endif
  2471.     readfile @padfile, #line
  2472.     #IsBul = #line
  2473.     ##i = length(#line)
  2474.     #kind = part(#line , 1, 3)
  2475.     #root = part(#line, 5, ##i-5)
  2476.     @froot = @logdir+"\"+#forum+"\"
  2477. kind_next1:
  2478.     switch #kind
  2479.         case "TPC"                            ; サブ目次へ移動
  2480.             #tpc = "TRUE"
  2481.             #dest = drop(#root, ",")
  2482.             #root = search(#root, ",")
  2483.             ##i = length(#root)
  2484.             if( ##i != 0 ) #root = part(#root, 1, ##i-1)
  2485.             if( length(#dest) == 0 )
  2486.                 #dest = #root
  2487.                 ##i = 0
  2488.             endif
  2489.             if( length(#dest) == 1 )
  2490.                 @froot = @froot+"SUB0"+#dest+"\"
  2491.             else
  2492.                 @froot = @froot+"SUB"+#dest+"\"
  2493.             endif
  2494.             send #dest+"^M"
  2495.             loopswitch
  2496.                 case "^M^J>"
  2497.                     if( ##i == 0 ) breakloop
  2498.                     #dest = drop(#root, ",")
  2499.                     #root = search(#root, ",")
  2500.                     ##i = length(#root)
  2501.                     if( ##i != 0 ) #root = part(#root, 1, ##i-1)
  2502.                     if( length(#dest) == 0 )
  2503.                         #dest = #root
  2504.                         ##i = 0
  2505.                     endif
  2506.                     if( length(#dest) == 1 )
  2507.                         @froot = @froot+"SUB0"+#dest+"\"
  2508.                     else
  2509.                         @froot = @froot+"SUB"+#dest+"\"
  2510.                     endif
  2511.                     @floor[@@layer] = #dest
  2512.                     @@layer = @@layer+1
  2513.                     send #dest+"^M"
  2514.                 case "^M^Jmore>"
  2515.                     send "E^M"
  2516.                 case "^M^JFORUM>"
  2517.                     breakloop
  2518.                 case "^M^JBBS>"
  2519.                     goto get_bbs
  2520.                 case "NetNews"
  2521.                     #inet = "TRUE"
  2522.             endloop
  2523.             readfile @padfile, #line
  2524.             ##i = length(#line)
  2525.             #kind = part(#line , 1, 3)
  2526.             #root = part(#line, 5, ##i-5)
  2527.             goto kind_next1
  2528.         case "MES"                                ; 本文書き込みか?
  2529.             if( @logsel == "NORMAL" )
  2530.                 if( length(#root) == 1)
  2531.                     @readsay = @froot+#forum+".M0"+#root
  2532.                     #readrtn = @froot+#forum+".R0"+#root
  2533.                 else
  2534.                     @readsay = @froot+#forum+".M"+#root
  2535.                     #readrtn = @froot+#forum+".R"+#root
  2536.                 endif
  2537.             else
  2538.                 getdate #date
  2539.                 @readsay = "NIF"+part( #date, 2, 4 )+".LOG"
  2540.             endif
  2541.             call MoveMes #line, #2, "CCS", @readsay, #inet    ; 会議室移動
  2542.             if( @flag == "TRUE" ) return                    ; 会議室が存在しない
  2543.             if ( #2 == "FALSE" )
  2544.                 send "RTN^M"
  2545.                 log #readrtn
  2546.                 loopswitch
  2547.                     case "^M^J>"
  2548.                         log
  2549.                         send "E^M"
  2550.                     case "^M^JCCS(N)>", "^M^JCCS(P)>"
  2551.                         breakloop
  2552.                 endloop
  2553.                 send "RC MAX^M"
  2554.                 wait "^M^JCCS(N)>", "^M^JCCS(P)>"
  2555.             endif
  2556.             readfile @padfile, #line
  2557.             ##i = length(#line)
  2558.             #p = part(#line, 1, ##i-1)
  2559.             send #p+"^M"                            ; アップロード指定
  2560.             loopswitch
  2561.                 case "終了は行頭で/E)^M^J"
  2562.                     breakloop
  2563.                 case  "^M^J:"
  2564.                     send "1^M"
  2565.                 case "^M^J◆既に"
  2566.                     wait  "^M^JCCS(N)>", "^M^JCCS(P)>"
  2567.                     call ErrorLog "コメントを発言として登録("+#forum+":"+#p
  2568.                     send "SAY^M"
  2569.             endloop
  2570.             readfile @padfile, #line
  2571.             while( (#line != "/E") AND (#line != "/POST") )
  2572.                 #com = part(#line, 0, 2)
  2573.                 if( ( @comment == "NO" ) OR ( #com != "//" ) ) send #line+"^M"
  2574.                 readfile @padfile, #line
  2575.                 if( no )
  2576.                     send "/POST^M"
  2577.                     #line = "/POST"
  2578.                 endif
  2579.             endwhile
  2580.             send #line+"^M"
  2581.             if( #line == "/E")
  2582.                 wait  "^M^J:"
  2583.                 send "2^M"
  2584.                 wait  "^M^J:"
  2585.                 send "1^M"
  2586.             endif
  2587.             @readreq = "TRUE"
  2588.             wait  "^M^JCCS(N)>", "^M^JCCS(P)>"
  2589.         case "LIB"                                ; ライブラリへアップロード
  2590.             if( @readreq == "TRUE" ) call DownMyArticle
  2591.             #p = part(#line, 1, ##i-1)
  2592.             if( #p != @library )                ; ライブラリ移動あり
  2593.                 send #p+"^M"
  2594.                 wait  "^M^JLIB>"
  2595.                 @library = #p
  2596.             endif
  2597.             readfile @padfile, #line
  2598.             ##i = length(#line)
  2599.             #p = part(#line, 1, ##i-1)
  2600.             send #p+"^M"                        ; アップロード方法を指定
  2601.             wait  "^M^J:"
  2602.             readfile @padfile, #line
  2603.             send #line+"^M"                        ; データ名
  2604.             wait  "^M^J:"
  2605.             send "1^M"                            ; 確認
  2606.             wait  "^M^J:"
  2607.             beginloop
  2608.                 readfile @padfile, #line
  2609.                 send #line+"^M"                    ; キーワード
  2610.                 if( #line == "" ) breakloop
  2611.                 wait  "^M^J:"
  2612.                 send "1^M"                        ; 確認
  2613.                 wait  "^M^J:"
  2614.             endloop
  2615.             wait "終了は行頭で/E)^M^J"
  2616.             readfile @padfile, #line
  2617.             while( (#line != "/E") AND (#line != "/POST") )
  2618.                 #com = part(#line, 0, 2)
  2619.                 if( ( @comment == "NO" ) OR ( #com != "//" ) ) send #line+"^M"
  2620.                 readfile @padfile, #line
  2621.                 if( no )
  2622.                     send "/POST^M"
  2623.                     #line = "/POST"
  2624.                 endif
  2625.             endwhile
  2626.             send #line+"^M"
  2627.             if(#line == "/E")
  2628.                 wait  "^M^J:"            ; 修正
  2629.                 send "2^M"
  2630.             endif
  2631.             wait  "^M^J:"            ; 項目
  2632.             send "1^M"
  2633.             wait  "^M^J:"
  2634.             readfile @padfile, #file
  2635.             send #file+"^M"                        ; ファイル名
  2636.             wait  "開始-"
  2637.             upload #file, bplus
  2638.             wait  "^M^JLIB>"                    ; ダウンロード終了
  2639.         case "BUL"                                ; 掲示板へ書き込み
  2640.             if((#3 == "BBS") OR (#tpc == "TRUE"))
  2641.                 send #root+"^M"
  2642.                 wait "^M^JBBS>", "^M^J>"
  2643.             else
  2644.                 readbuffer 0, #line
  2645.                 if( #line != "BBS>" )
  2646.                     send "BUL^M"
  2647.                     wait "^M^JBBS>", "^M^J>"
  2648.                 endif
  2649.             endif
  2650.             send "COM^M"                        ; アップロード指定
  2651.             loopswitch
  2652.                 case "終了は行頭で/E) ^M^J"
  2653.                     breakloop
  2654.                 case  "^M^J:"
  2655.                     send "1^M"
  2656.                 case "^M^J◆既に"
  2657.                     wait  "^M^JBBS>", "^M^J>"
  2658.                     call ErrorLog "掲示板へのアップロード失敗("+#forum+")"
  2659.                     beginloop
  2660.                         readfile @padfile, #line
  2661.                         if( no ) breakloop
  2662.                         if( (#line == "/E") OR (#line == "/POST") ) breakloop
  2663.                     endloop
  2664.                     return
  2665.             endloop
  2666.             readfile @padfile, #line
  2667.             while( (#line != "/E") AND (#line != "/POST") )
  2668.                 #com = part(#line, 0, 2)
  2669.                 if( ( @comment == "NO" ) OR ( #com != "//" ) ) send #line+"^M"
  2670.                 readfile @padfile, #line
  2671.                 if( no )
  2672.                     send "/POST^M"
  2673.                     #line = "/POST"
  2674.                 endif
  2675.             endwhile
  2676.             send #line+"^M"
  2677.             if( #line == "/E")
  2678.                 wait  "^M^J:"
  2679.                 send "2^M"
  2680.                 wait  "^M^J:"
  2681.                 send "1^M"
  2682.             elseif( #3 == "BBS")
  2683.                 wait  "^M^J:"
  2684.                 send "1^M"
  2685.                 wait  "^M^J:"
  2686.                 send "1^M"
  2687.                 wait "^M^JBBS>", "^M^J>"
  2688.                 send "E^M"
  2689.             endif
  2690.             wait  "^M^JBBS>", "^M^J>"
  2691.         case "OSM"                                ; オンラインショッピングメール
  2692.             call SendMail #forum
  2693.     endswitch
  2694. return
  2695.  
  2696. ;****************** 書き込み削除  *******************
  2697.  
  2698. DelTitle:
  2699.     #tpc = "FALSE"
  2700.     #inet = "FALSE"
  2701.     ##i = length(#1)
  2702.     #forum = part(#1, 4, ##i-4)
  2703.     if( #forum == "bbs" )
  2704.         title "掲示板の書き込みを削除中"
  2705.         #3 = "BBS"
  2706.     else
  2707.         title "書き込みを削除中("+#forum+")"
  2708.     endif
  2709.     if( #2 == "FALSE" )
  2710.         @get = "FALSE"
  2711.         switch #3
  2712.             case "FORUM"
  2713.                 call AccessForum #1                    ; フォーラムを移動する
  2714.                 if( @flag == "TRUE" ) return        ; フォーラムが存在しない
  2715.             case "PATIO"
  2716.                 call AccessPatio #4, #5, #forum
  2717.                 if (@flag == "TRUE" ) return
  2718.             case "TOPIC"
  2719.                 call AccessTopic #1
  2720.                 if( @flag == "TRUE" ) return        ; フォーラムが存在しない
  2721.         endswitch
  2722.     endif
  2723.     readfile @padfile, #line
  2724.     #IsBul = #line
  2725.     ##i = length(#line)
  2726.     #kind = part(#line , 0, 3)
  2727.     if( #3 == "PATIO" ) #kind = "PAT"
  2728.     #root = part(#line, 4, ##i-4)
  2729.     @froot = @logdir+"\"+#forum+"\"
  2730. kind_next2:
  2731.     switch #kind
  2732.         case "TPC"                            ; サブ目次へ移動
  2733.             #tpc = "TRUE"
  2734.             #dest = drop(#root, ",")
  2735.             #root = search(#root, ",")
  2736.             ##i = length(#root)
  2737.             if( ##i != 0 ) #root = part(#root, 1, ##i-1)
  2738.             if( length(#dest) == 0 )
  2739.                 #dest = #root
  2740.                 ##i = 0
  2741.             endif
  2742.             if( length(#dest) == 1 )
  2743.                 @froot = @froot+"SUB0"+#dest+"\"
  2744.             else
  2745.                 @froot = @froot+"SUB"+#dest+"\"
  2746.             endif
  2747.             send #dest+"^M"
  2748.             loopswitch
  2749.                 case "^M^J>"
  2750.                     if( ##i == 0 ) breakloop
  2751.                     #dest = drop(#root, ",")
  2752.                     #root = search(#root, ",")
  2753.                     ##i = length(#root)
  2754.                     if( ##i != 0 ) #root = part(#root, 1, ##i-1)
  2755.                     if( length(#dest) == 0 )
  2756.                         #dest = #root
  2757.                         ##i = 0
  2758.                     endif
  2759.                     if( length(#dest) == 1 )
  2760.                         @froot = @froot+"SUB0"+#dest+"\"
  2761.                     else
  2762.                         @froot = @froot+"SUB"+#dest+"\"
  2763.                     endif
  2764.                     @floor[@@layer] = #dest
  2765.                     @@layer = @@layer+1
  2766.                     send #dest+"^M"
  2767.                 case "^M^Jmore>"
  2768.                     send "E^M"
  2769.                 case "^M^JFORUM>"
  2770.                     breakloop
  2771.                 case "^M^JBBS>"
  2772.                     goto get_bbs
  2773.                 case "NetNews"
  2774.                     #inet = "TRUE"
  2775.             endloop
  2776.             readfile @padfile, #line
  2777.             ##i = length(#line)
  2778.             #kind = part(#line , 0, 3)
  2779.             #root = part(#line, 4, ##i-4)
  2780.             goto kind_next2
  2781.         case "MES"                                ; 本文書き込みか?
  2782.             #mes = "*"+#line
  2783.             call MoveMes #mes, #2, "CCS", "NULL", #inet    ; 会議室移動
  2784.             if( @flag == "TRUE" ) return                    ; 会議室が存在しない
  2785.             readfile @padfile, #msg
  2786.             beginloop
  2787.                 readfile @padfile, #num
  2788.                 if( #num == "*END" ) breakloop
  2789.                 send "RD "+#num+"^M"
  2790.                 loopswitch
  2791.                     case  "改行のみ :省略)"
  2792.                         wait "^M^J:"
  2793.                         send #msg+"^M"
  2794.                     case "2:NG)"
  2795.                         wait "^M^J:"
  2796.                         send "1^M"
  2797.                     case "2:しない)^M^J:"
  2798.                         send "1^M"
  2799.                         breakloop
  2800.                     case "^M^J◆"
  2801.                         breakloop
  2802.                 endloop
  2803.                 wait "^M^JCCS(P)>", "^M^JCCS(N)>"
  2804.             endloop
  2805.             if( #tpc == "TRUE" )
  2806.                 send "T^M"
  2807.                 wait "^M^J>"
  2808.             endif
  2809.         case "PAT"                                ; 本文書き込みか?
  2810.             #kind = "PATIO"
  2811.             #root = part(#line, 4, ##i-4)
  2812.             #mes = "*"+#line
  2813.             readfile @padfile, #msg
  2814.             beginloop
  2815.                 readfile @padfile, #num
  2816.                 if( #num == "*END" ) breakloop
  2817.                 send "RD "+#num+"^M"
  2818.                 loopswitch
  2819.                     case  "改行のみ :省略)"
  2820.                         wait "^M^J:"
  2821.                         send #msg+"^M"
  2822.                     case "2:NG)"
  2823.                         wait "^M^J:"
  2824.                         send "1^M"
  2825.                     case "2:しない)^M^J:"
  2826.                         send "1^M"
  2827.                         breakloop
  2828.                     case "^M^J◆"
  2829.                         call ErrorLog "書き込み削除失敗("+#forum+")"
  2830.                         breakloop
  2831.                 endloop
  2832.                 wait "^M^JPATIO(P)>", "^M^JPATIO(N)>"
  2833.             endloop
  2834.         case "BUL"                                ; 掲示板へ書き込み
  2835. del_bul:
  2836.             if((#3 == "BBS") OR (#tpc == "TRUE"))
  2837.                 send #root+"^M"
  2838.                 wait "^M^JBBS>", "^M^J>"
  2839.             else
  2840.                 readbuffer 0, #line
  2841.                 if( #line != "BBS>" )
  2842.                     send "BUL^M"
  2843.                     wait "^M^JBBS>", "^M^J>"
  2844.                 endif
  2845.             endif
  2846.             readfile @padfile, #msg
  2847.             beginloop
  2848.                 readfile @padfile, #num
  2849.                 if( #num == "*END" ) breakloop
  2850.                 send "DELETE "+#num+"^M"
  2851.                 loopswitch
  2852.                     case  ":"
  2853.                         send "1^M"
  2854.                     case "^M^JBBS>"
  2855.                         breakloop
  2856.                     case "^M^J◆番号又はコマンド"
  2857.                         wait "^M^JBBS>"
  2858.                         send "DELETE ALL^M"
  2859.                 endloop
  2860.             endloop
  2861.             if( #tpc == "TRUE" )
  2862.             send "T^M"
  2863.             loopswitch
  2864.                 case "^M^J>"
  2865.                     return
  2866.                 case "^M^JNIFTY-Serve     TOP"
  2867.                     @here = "TOP"
  2868.             endloop
  2869.         case "TPB"
  2870.             goto del_bul
  2871.     endswitch
  2872. return
  2873.  
  2874. ;****************** 退会処理  *******************
  2875.  
  2876. FrmQuit:
  2877.     title #1+"から退会します"
  2878.  
  2879.     #forum = "*GO "+#1
  2880.     if( #2 == "FALSE" )
  2881.         @get = "FALSE"
  2882.         call AccessForum #forum                ; フォーラムを移動する
  2883.         if( @flag == "TRUE" ) return        ; フォーラムが存在しない
  2884.     endif
  2885.     send "QUIT^M"
  2886.     wait "^M^J:"
  2887.     send "1^M"
  2888.     wait "^M^J>"
  2889.     #fname = @logdir+"\"+#1+".FRM"
  2890.     delfile #fname
  2891.     #fname = @logdir+"\"+#1+".LIB"
  2892.     delfile #fname
  2893.     return
  2894.  
  2895. ;****************** ハンドルの変更  *******************
  2896.  
  2897. ChgHandle:
  2898.     title #1+"でのハンドル名を変更します"
  2899.  
  2900.     readfile @padfile, #handle
  2901.     #forum = "*GO "+#1
  2902.     if( #2 == "FALSE" )
  2903.         @get = "FALSE"
  2904.         call AccessForum #forum                ; フォーラムを移動する
  2905.         if( @flag == "TRUE" ) return        ; フォーラムが存在しない
  2906.     endif
  2907.     send "OPT^M"
  2908.     wait "^M^J>"
  2909.     send "3^M"
  2910.     wait "^M^J:"
  2911.     send #handle+"^M"
  2912.     wait "^M^J:"
  2913.     send "1^M"
  2914.     wait "^M^J>"
  2915.     return
  2916.  
  2917. ;*********** ホームパティオへの書き込み  *************
  2918.  
  2919. SendPatio:
  2920.     title #1+"へ送信中"
  2921.     if( @logsel == "NORMAL" )
  2922.         @readsay = @logdir+"\patio\"+#1+".M01"
  2923.     else
  2924.         getdate #date
  2925.         @readsay = @logdir+"\NIF"+part( #date, 2, 4 )+".LOG"
  2926.     endif
  2927.     ##i = 0
  2928.     beginloop
  2929.         if( @pationame[##i] == #1 )
  2930.             #id = @patioid[##i]
  2931.             #password = @patiopasswd[##i]
  2932.             breakloop
  2933.         elseif( @pationame[##i] == "END" )
  2934.             timeoutmessage "パティオ情報が見つかりません", 3
  2935.             call ErrorLog "パティオ情報が見つからない("+#1+")"
  2936.             return
  2937.         endif
  2938.         ##i = ##i+1
  2939.     endloop
  2940.     if( #2 == "FALSE" )
  2941.         call AccessPatio #id, #password, #1
  2942.         if (@flag == "TRUE" ) return
  2943. ;        send "RC MAX^M"
  2944. ;        wait  "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  2945.     endif
  2946.     readfile @padfile, #line
  2947.     ##i = length(#line)
  2948.     #p = part(#line, 1, ##i-1)
  2949.     send #p+"^M"                            ; アップロード指定
  2950.     loopswitch
  2951.         case "終了は行頭で/E)^M^J"
  2952.             breakloop
  2953.         case  "^M^J:"
  2954.             send "1^M"
  2955.         case "^M^J◆既に"
  2956.             call ErrorLog "書き込み失敗("+#1+")"
  2957.             beginloop
  2958.                 readfile @padfile, #line
  2959.                 if( no ) breakloop
  2960.                 if( (#line == "/E") OR (#line == "/POST") ) breakloop
  2961.             endloop
  2962.             goto skip_patio
  2963.     endloop
  2964.     readfile @padfile, #line
  2965.     while( (#line != "/E") AND (#line != "/POST") )
  2966.         #com = part(#line, 0, 2)
  2967.         if( ( @comment == "NO" ) OR ( #com != "//" ) ) send #line+"^M"
  2968.         readfile @padfile, #line
  2969.         if( no )
  2970.             send "/POST^M"
  2971.             #line = "/POST"
  2972.         endif
  2973.     endwhile
  2974.     send #line+"^M"
  2975.     if(#line == "/E")
  2976.         wait  "^M^J:"
  2977.         send "2^M"
  2978.         wait  "^M^J:"
  2979.         send "1^M"
  2980.     endif
  2981.     @readreq = "TRUE"
  2982. skip_patio:
  2983.     wait  "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  2984. return
  2985.  
  2986. ;************* ホームパーティへの書き込み  **************
  2987.  
  2988. SendHP:
  2989.     title #1+"へ送信中"
  2990.     if( @logsel == "NORMAL" )
  2991.         #file = @logdir+"\HP\"+#1
  2992.     else
  2993.         getdate #date
  2994.         #file = @logdir+"\NIF"+part( #date, 2, 4 )+".LOG"
  2995.     endif
  2996.     readfile @padfile, #line
  2997.     if( #line != "*WRITE" ) return            ; 書き込み指定がない
  2998.     ##i = 0
  2999.     beginloop
  3000.         if( @hpname[##i] == #1 )
  3001.             #id = @hpid[##i]
  3002.             #password = @hppasswd[##i]
  3003.             breakloop
  3004.         elseif( @hpname[##i] == "END" )
  3005.             timeoutmessage "ホームパーティ情報が見つかりません", 3
  3006.             call ErrorLog "ホームパーティ情報が見つからない("+#1+")"
  3007.             return
  3008.         endif
  3009.         ##i = ##i+1
  3010.     endloop
  3011.     if( #2 == "FALSE" )
  3012.         call AccessHP #id, #password
  3013.         if (@flag == "TRUE" ) return
  3014.     endif
  3015.     send "WRITE^M"
  3016.     wait  "^M^J:"
  3017.     readfile @padfile, #line
  3018.     send #line+"^M"
  3019.     wait  "^M^J:"
  3020.     send "1^M"
  3021.     wait "終了は行頭で/E)^M^J"
  3022.     readfile @padfile, #line
  3023.     while( (#line != "/E") AND (#line != "/POST") )
  3024.         #com = part(#line, 0, 2)
  3025.         if( ( @comment == "NO" ) OR ( #com != "//" ) ) send #line+"^M"
  3026.         readfile @padfile, #line
  3027.         if( no )
  3028.             send "/POST^M"
  3029.             #line = "/POST"
  3030.         endif
  3031.     endwhile
  3032.     send #line+"^M"
  3033.     if(#line == "/E")
  3034.         wait  "^M^J:"
  3035.         send "2^M"
  3036.         wait  "^M^J:"
  3037.         send "1^M"
  3038.     endif
  3039.     wait  "^M^JHP>"
  3040.     send "read new^M"
  3041.     log #file
  3042.     wait  "^M^JHP>"
  3043.     log
  3044. return
  3045.  
  3046. ;***************  フォーラム登録  *****************
  3047.  
  3048. Regist:
  3049.     readfile @padfile, #line
  3050.     #subnum = ""
  3051.     if( #1 == "*NEWSUBFRM" )
  3052.         readfile @padfile, #subnum
  3053.     endif
  3054.     readfile @padfile, #name
  3055.     title #line+"登録作業中"
  3056.     @flag = "FALSE"
  3057.     #fname = @logdir+"\"+#line+".FRM"
  3058.     log #fname
  3059.     #p = "GO "+#line
  3060.     send #p+"^M"
  3061.     #first = "FALSE"
  3062.     loopswitch
  3063.         case postmilliidle(500) "1:フォーラム概要  2:一時利用  3:入会手続き^M^J>"
  3064.             log
  3065.             delfile #fname
  3066.             #first = "TRUE"
  3067.             send "3^M"
  3068.             wait  "^M^J:"
  3069.             send #name+"^M"
  3070.             wait  "^M^J:"
  3071.             send "1^M"
  3072.             wait  "^M^J:"
  3073.             send "1^M"
  3074.         case postmilliidle(500) "^M^JFORUM>"
  3075.             @frmmenu = "OFF"
  3076.             title #line+"から受信中"
  3077.             if( #first == "TRUE" )
  3078.                 @get = "TRUE"
  3079.                 call AccessForum "*GO "+#line        ; フォーラムを移動する
  3080.                 if( @flag == "TRUE" ) return        ; フォーラムが存在しない
  3081.             else
  3082.                 log
  3083.             endif
  3084.             breakloop
  3085.         case "^M^J正しい", "^M^J◆番号又はコマンドを入力して下さい◆"
  3086.             timeoutmessage "フォーラム名に誤りがあります", 3
  3087.             call ErrorLog "フォーラム指定ミス("+#line+")"
  3088.             @flag = "TRUE"
  3089.             return
  3090.         case postmilliidle(500) "^M^J>"
  3091.             if( #subnum != "" )
  3092.                 send #subnum+"^M"
  3093.             else
  3094.                 writelog #name+"^M^J"
  3095.                 log
  3096.                 #fnew = @logdir+"\"+#line+".NEW"
  3097.                 delfile #fnew
  3098.                 renamefile #fname, #fnew
  3099.                 breakloop
  3100.             endif
  3101.     endloop
  3102.     if( @frmmenu = "ON" )
  3103.         title "フォーラムオプション変更中"
  3104.         call ForumMenuOff #p, #fname
  3105.         if( @frmmenu == "ERR" )
  3106.             timeoutmessage "次回巡回時に、サブフォーラム名で登録して下さい", 3
  3107.             call ErrorLog "サブフォーラムを検出("+#line+")"
  3108.             return
  3109.         endif
  3110.         title #line+"にて処理中"
  3111.     endif
  3112.     send "MES^M"
  3113.     log #line+".FRM"                    ; フォーラム情報を取得
  3114.     wait postmilliidle(500) "^M^JFORUM>", postmilliidle(500) "^M^J>"
  3115.     send "LIB^M"
  3116.     log #line+".LIB"                    ; ライブラリ情報を取得
  3117.     wait  postmilliidle(500) "^M^J>", postmilliidle(500) "^M^JFORUM>", postmilliidle(500) "^M^JLIB>"
  3118.     log
  3119.     return
  3120.  
  3121. ;************  フォーラムにアクセス  **************
  3122. AccessForum:
  3123.  
  3124.     @flag = "FALSE"
  3125.     ##retry = 0
  3126.     ##i = length(#1)
  3127.     #p = part(#1, 1, ##i-1)
  3128.     #frmnews = part(#1, 4, ##i-4)
  3129.     #fname = @logdir+"\"+#frmnews+".FRM"
  3130.     #fbak = @logdir+"\"+#frmnews+".BAK"
  3131.     if( @get == "TRUE" ) renamefile #fname, #fbak
  3132.     send #p+"^M"
  3133.     if( @get == "TRUE" ) log #fname                ; フォーラム情報を取得
  3134.     loopswitch
  3135.         case "^M^Jmore>"
  3136.             send "^M"
  3137.         case "続き (改行で表示 E:終了)^M^J>"
  3138.             send "^M"
  3139.         case "^M^JFORUM>"
  3140.             readbuffer 1, #tmp
  3141.             @frmttl = "^M^J"+#tmp
  3142.             @frmmenu = "OFF"
  3143.             log
  3144.             breakloop
  3145.         case "^M^J>"
  3146.             @frmmenu = "ON"
  3147.             log
  3148.             breakloop
  3149.         case "^M^J正しい", "^M^J◆番号又はコマンドを入力して下さい◆"
  3150.             log
  3151.             wait "^M^JFORUM>",  "^M^J>"
  3152.             timeoutmessage "フォーラム名に誤りがあります", 3
  3153.             call ErrorLog "フォーラム指定ミス("+#frmnews+")"
  3154.             @flag = "TRUE"
  3155.             delfile #fname
  3156.             renamefile #fbak, #fname
  3157.             return
  3158.         case "^M^J現在、サービスは"
  3159.             log
  3160.             wait "^M^JFORUM>",  "^M^J>"
  3161.             ##retry = ##retry+1
  3162.             if( ##retry == 3 )
  3163.                 delfile #fname
  3164.                 renamefile #fbak, #fname
  3165.                 call ErrorLog "フォーラム混雑("+#frmnews+")"
  3166.                 @flag = "TRUE"
  3167.                 return
  3168.             endif
  3169.             send #p+"^M"
  3170.         case "^M^J-保守作業の為しばらくの間御利用頂けません-"
  3171.             log
  3172.             wait "^M^JFORUM>",  "^M^J>"
  3173.             delfile #fname
  3174.             renamefile #fbak, #fname
  3175.             call ErrorLog "フォーラム保守作業中("+#frmnews+")"
  3176.             @flag = "TRUE"
  3177.             return
  3178.         case "^M^Jリアルタイム会議"
  3179.             @rtc_frm[@@rtc_no] = #frmnews
  3180.             @@rtc_no = @@rtc_no + 1
  3181.     endloop
  3182.     if( @frmmenu = "ON" )
  3183.         title "フォーラムオプション変更中"
  3184.         call ForumMenuOff #p, #frmnews+".FRM"
  3185.         title #frmnews+"にて処理中"
  3186.     endif
  3187.     if(@frmmenu = "OFF")
  3188.         send "SEND OFF^M"
  3189.         wait  "^M^JFORUM>"
  3190.         @message = "NULL"
  3191.         @library = "NULL"
  3192.         delfile #fbak
  3193.     else
  3194.         title #frmnews+"にて異常検出:巡回をスキップします"
  3195.         @flag = "TRUE"
  3196.     endif
  3197.     if( @skippad == "YES" )    return
  3198.     if( @padname[0] == "END" ) return
  3199.     if( @gopad == "TRUE" ) return
  3200.     ##j = 0
  3201.     while( @padname[##j] != "END" )
  3202.         #fname = #frmnews+".PAD"
  3203.         if( @padname[##j] == #fname )
  3204.             @padfile = @padname[##j]
  3205.             chdir script
  3206.             openfile @padfile
  3207.             restoredir
  3208.             if( yes )
  3209.                 @gopad = "TRUE"
  3210.                 call PAD
  3211.                 @padflag[##j] = "TRUE"
  3212.             endif
  3213.             return
  3214.         endif
  3215.         ##j = ##j+1
  3216.     endwhile
  3217. return
  3218.  
  3219. ;***************  会議室を移動する  *****************
  3220.  
  3221. MoveMes:
  3222.     @flag = "FALSE"
  3223.     ##i = length(#1)
  3224.     #p = part(#1, 1, ##i-1)
  3225.     #q = part(#1, 5, ##i-5)
  3226.     if( #q == "21" )                        ; 掲示板
  3227.         if( #p != @message )
  3228.             if( @readreq == "TRUE" ) call DownMyArticle
  3229.             send "BUL^M"
  3230.             loopswitch
  3231.                 case "^M^J現在、サービスは大変混雑しています"
  3232.                     wait  "^M^J"+#3+"(N)>", "^M^J"+#3+"(P)>"
  3233.                     @flag = "TRUE"
  3234.                     call ErrorLog "掲示板混雑("+#1+")"
  3235.                     return
  3236.                 case "^M^JBBS>"
  3237.                     @message = #p
  3238.                     return
  3239.                 case "◆"
  3240.                     wait  "^M^J"+#3+"(N)>", "^M^J"+#3+"(P)>"
  3241.                     @flag = "TRUE"
  3242.                     call ErrorLog "会議室移動ミス("+#1+")"
  3243.                     return
  3244.             endloop
  3245.         endif
  3246.     endif
  3247.     readbuffer 0, #line
  3248.     if( (#2 == "FALSE") OR (#line == "LIB>") OR (#line == "BUL>") OR (#line == ">") OR (#line == "FORUM>") )
  3249.         if( #4 != "NULL" )
  3250.             appendfile #4
  3251.             if( no ) createfile #4
  3252.             writefile #4, @frmttl
  3253.             closefile #4
  3254.             log #4
  3255.         endif
  3256.         ##i = length(#p)
  3257.         #r = part(#p, 4, ##i-4)
  3258.         #p = "MES "+#r
  3259.         if( #5 == "FALSE" )
  3260.             send #p+"^M"                        ; フォーラム移動あり
  3261.         else
  3262.             send #r+"^M"
  3263.         endif
  3264.         loopswitch
  3265.             case "^M^J現在、サービスは大変混雑しています"
  3266.                 wait  "^M^JFORUM>", "^M^J>", "^M^J"+#3+"(N)>", "^M^J"+#3+"(P)>"
  3267.                 @flag = "TRUE"
  3268.                 call ErrorLog "会議室混雑("+#1+")"
  3269.                 return
  3270.             case  "^M^J"+#3+"(N)>", "^M^J"+#3+"(P)>"
  3271.                 breakloop
  3272.             case "◆該当する会議室がありません◆"
  3273.                 wait  "^M^JFORUM>", "^M^J>", "^M^J"+#3+"(N)>", "^M^J"+#3+"(P)>"
  3274.                 call ErrorLog "会議室移動ミス("+#1+")"
  3275.                 @flag = "TRUE"
  3276.                 return
  3277.         endloop
  3278.         if( #4 != "NULL" ) log
  3279.         @message = #p
  3280.     else
  3281.         #p = part(#1, 1, ##i-1)
  3282.         if( #p != @message)
  3283.             if( @readreq == "TRUE" ) call DownMyArticle
  3284.             #q = part(#1, 5, ##i-5)
  3285.             if( #4 != "NULL" ) log #4
  3286.             send "RX "+#q+"^M"                ; フォーラム移動なし
  3287.             loopswitch
  3288.                 case "^M^J現在、サービスは大変混雑しています"
  3289.                     wait  "^M^JFORUM>", "^M^J>", "^M^J"+#3+"(N)>", "^M^J"+#3+"(P)>"
  3290.                     @flag = "TRUE"
  3291.                     call ErrorLog "会議室混雑("+#1+")"
  3292.                     return
  3293.                 case  "^M^J"+#3+"(N)>", "^M^J"+#3+"(P)>"
  3294.                     breakloop
  3295.                 case "◆該当する会議室がありません◆"
  3296.                     wait  "^M^JFORUM>", "^M^J>", "^M^J"+#3+"(N)>", "^M^J"+#3+"(P)>"
  3297.                     call ErrorLog "会議室移動ミス("+#1+")"
  3298.                     @flag = "TRUE"
  3299.                     return
  3300.             endloop
  3301.             if( #4 != "NULL" ) log
  3302.             ##i = length(#p)
  3303.             #r = part(#p, 4, ##i-4)
  3304.             #p = "MES "+#r
  3305.             @message = #p
  3306.         endif
  3307.     endif
  3308.     return
  3309.  
  3310. ;************  ホームパーティにアクセス  **************
  3311.  
  3312. AccessHP:
  3313.     @flag = "FALSE"
  3314.     ##retry = 0
  3315.     readbuffer 0, #prompt
  3316.     if( #prompt == "HP>" )
  3317.         send "MOVE "+#1+"^M"
  3318.         goto Hp_pass
  3319.     endif
  3320.     send "GO HP^M"
  3321.     loopswitch
  3322.         case  "^M^J>"
  3323.             breakloop
  3324.         case "^M^J現在、サービスは"
  3325.             wait "^M^JFORUM>",  "^M^J>", "^M^JMAIL>"
  3326.             ##retry = ##retry+1
  3327.             if( ##retry == 3 )
  3328.                 call ErrorLog "ホームパーティ混雑("+#1+")"
  3329.                 @flag = "TRUE"
  3330.                 return
  3331.             endif
  3332.             timeoutmessage "混雑していてホームパーティに入れません", 10
  3333.             send "GO HP^M"
  3334.     endloop
  3335.     send "1^M"
  3336.     wait  "^M^J:"
  3337.     send #1+"^M"
  3338.  
  3339. Hp_pass:
  3340.     loopswitch
  3341.         case "^M^JHP>"
  3342.             return
  3343.         case "^M^J:"
  3344.             breakloop
  3345.         case "^M^JあなたはまだHome Partyを設定していません", "^M^J◆該当する利用者のHome Partyはありません◆"
  3346.             wait  "^M^J:"
  3347.             send "2^M"
  3348.             wait "^M^J>"
  3349.             timeoutmessage "ホームパーティ設定IDを再度確認してください", 3
  3350.             call ErrorLog "ホームパーティが存在しない("+#1+")"
  3351.             @flag = "TRUE"
  3352.             return
  3353.     endloop
  3354.     if( @id == "ID1" ) #idset = %NifID
  3355.     if( @id == "ID2" ) #idset = %NifID2
  3356.     if( #idset != #1 )
  3357.         send #2+"^M"
  3358.         loopswitch
  3359.             case  "^M^JHP>"
  3360.                 breakloop
  3361.             case "^M^J◆パスワードが間違っています◆"
  3362.                 timeoutmessage "パスワードに誤りがあります", 3
  3363.                 call ErrorLog "パスワードに誤り("+#1+")"
  3364.                 send "^M^M"
  3365.                 wait  "^M^J:"
  3366.                 @flag = "TRUE"
  3367.                 return
  3368.         endloop
  3369.     endif
  3370.     if( @skippad == "YES" )    return
  3371.     if( @padname[0] == "END" ) return
  3372.     if( @gopad == "TRUE" ) return
  3373.     ##i = 0
  3374.     while( @hpid[##i] != "END" )
  3375.         if( @hpid[##i] == #1 )
  3376.             ##j = 0
  3377.             while( @padname[##j] != "END" )
  3378.                 #fname = @hpname[##i]+".PAD"
  3379.                 if( @padname[##j] == #fname )
  3380.                     @padfile = @padname[##j]
  3381.                     chdir script
  3382.                     openfile @padfile
  3383.                     restoredir
  3384.                     if( yes )
  3385.                         @gopad = "TRUE"
  3386.                         call PAD
  3387.                         @padflag[##j] = "TRUE"
  3388.                     endif
  3389.                     return
  3390.                 endif
  3391.                 ##j = ##j+1
  3392.             endwhile
  3393.             breakloop
  3394.         endif
  3395.         ##i = ##i+1
  3396.     endwhile
  3397. return
  3398.  
  3399. ;************  ホームパティオにアクセス  **************
  3400.  
  3401. AccessPatio:
  3402.     delfile @logdir+"\"+#3+".FRM"
  3403.     @flag = "FALSE"
  3404.     ##retry = 0
  3405.     send "GO PATIO^M"
  3406.     loopswitch
  3407.         case  "^M^J>"
  3408.             breakloop
  3409.         case "^M^J現在、サービスは"
  3410.             wait "^M^JFORUM>",  "^M^J>", "^M^JMAIL>"
  3411.             ##retry = ##retry+1
  3412.             if( ##retry == 3 )
  3413.                 call ErrorLog "ホームパティオ混雑("+#3+")"
  3414.                 @flag = "TRUE"
  3415.                 return
  3416.             endif
  3417.             timeoutmessage "混雑していてホームパティオに入れません", 10
  3418.             send "GO PATIO^M"
  3419.     endloop
  3420.     send "2^M"
  3421.     wait  "^M^J:"
  3422.     send #1+"^M"
  3423.     if( #1 == "" ) log @logdir+"\"+#3+".FRM"
  3424.     #fpass = "TRUE"
  3425.     loopswitch
  3426.         case "^M^J>"
  3427.             log
  3428.             #fpass = "FALSE"
  3429.             breakloop
  3430.         case "^M^J:"
  3431.             breakloop
  3432.         case "^M^Jあなたはパティオを設定していません"
  3433.             wait "^M^J:"
  3434.             send "2^M"
  3435.             wait "^M^J>"
  3436.             timeoutmessage "パティオ設定IDを再度確認してください", 3
  3437.             call ErrorLog "ホームパティオが存在しない("+#3+")"
  3438.             @flag = "TRUE"
  3439.             return
  3440.         case "^M^J◆該当するパティオはありません◆"
  3441.             wait "^M^J>"
  3442.             timeoutmessage "パティオ設定IDを再度確認してください", 3
  3443.             call ErrorLog "ホームパティオが存在しない("+#3+")"
  3444.             @flag = "TRUE"
  3445.             return
  3446.         case "^M^J同意しますか (1: 同意する  2: しない)"
  3447.             wait "^M^J:"
  3448.             send "1^M"
  3449.             wait "^M^J:"
  3450.             send "^M"
  3451.             wait "^M^J:"
  3452.             send "1^M"
  3453.     endloop
  3454.     if( #fpass == "TRUE" )
  3455.         send #2+"^M"
  3456.         log @logdir+"\"+#3+".FRM"
  3457.         loopswitch
  3458.             case  "^M^J>"
  3459.                 log
  3460.                 breakloop
  3461.             case "^M^J◆パスワードが間違っています◆"
  3462.                 timeoutmessage "パスワードに誤りがあります", 3
  3463.                 call ErrorLog "パスワードに誤り("+#3+")"
  3464.                 send "^M^M"
  3465.                 wait  "^M^J>"
  3466.                 @flag = "TRUE"
  3467.                 return
  3468.         endloop
  3469.     endif
  3470.     send "1^M"
  3471.     wait  "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  3472.     if( @skippad == "YES" )    return
  3473.     if( @padname[0] == "END" ) return
  3474.     if( @gopad == "TRUE" ) return
  3475.     ##i = 0
  3476.     while( @patioid[##i] != "END" )
  3477.         if( @patioid[##i] == #1 )
  3478.             ##j = 0
  3479.             while( @padname[##j] != "END" )
  3480.                 #fname = @pationame[##i]+".PAD"
  3481.                 if( @padname[##j] == #fname )
  3482.                     @padfile = @padname[##j]
  3483.                     chdir script
  3484.                     openfile @padfile
  3485.                     restoredir
  3486.                     if( yes )
  3487.                         @gopad = "TRUE"
  3488.                         call PAD
  3489.                         @padflag[##j] = "TRUE"
  3490.                     endif
  3491.                     return
  3492.                 endif
  3493.                 ##j = ##j+1
  3494.             endwhile
  3495.             breakloop
  3496.         endif
  3497.         ##i = ##i+1
  3498.     endwhile
  3499. return
  3500.  
  3501. ;************  特設掲示板にアクセス  **************
  3502. AccessTopic:
  3503.  
  3504.     ##i = length(#1)
  3505.     #cmd = part(#1, 1, ##i-1)
  3506.     #name = part(#1, 4, ##i-4)
  3507.     #file = #name+".FRM"
  3508.     title #name+"へ移動中"
  3509.     chdir log
  3510.     delfile #file
  3511.     restoredir
  3512.     send #cmd+"^M"
  3513.     log #file
  3514.     loopswitch
  3515.         case "^M^J>"
  3516.             breakloop
  3517.         case "^M^J◆"
  3518.             wait "^M^J>"
  3519.             call ErrorLog "特設掲示板アクセス異常 "+#name
  3520.             @flag = "TRUE"
  3521.             log
  3522.             return
  3523.     endloop
  3524.     log
  3525. return
  3526.  
  3527. ;************** タイトルリスト読込処理手順  ****************
  3528. TITLE:
  3529.     chdir script
  3530.     openfile @ttlfile
  3531.     if( no ) return                            ; TTLPADファイルがない
  3532.     #linebuf = ""
  3533.     beginloop
  3534.         readfile @ttlfile, #line
  3535.         if( no ) breakloop                    ; TTLPAD処理終了
  3536.         #p = part( #line, 0, 1 )
  3537.         if( #p == "*" )                        ; PAD命令か?
  3538.             if( #line == "*MYFORUM" ) call PADNAV1.SCR:GetFrmList @logdir
  3539.             if( #line == "*BBSLIST" ) call PADNAV1.SCR:GetBbsList @logdir
  3540.             if( #line == "*ALLFORUM" ) call GetAllForum
  3541.             if( #line == "*BILL" ) call PADNAV1.SCR:ReadBill
  3542.             elseif( #line == "*CLIP1" ) call ReadClip "1"
  3543.             elseif( #line == "*CLIP2" ) call ReadClip "2"
  3544.             elseif( #line == "*CLIP3" ) call ReadClip "3"
  3545.             elseif( #line == "*GO HP" )
  3546.                 #buf = "FALSE"
  3547.                 readfile @ttlfile, #line
  3548.                 if( @here == #line) #buf = "TRUE"
  3549.                 @here = #line
  3550.                 call Hp #line, #buf
  3551.             elseif( #line == "*GO PATIO" )
  3552.                 #buf = "FALSE"
  3553.                 readfile @ttlfile, #downseq
  3554.                 readfile @ttlfile, #line
  3555.                 if( @here == #line) #buf = "TRUE"
  3556.                 @here = #line
  3557.                 call Patio #line, #buf, #downseq
  3558.             elseif( #line == "*GO TOPIC" )
  3559.                 #buf = "FALSE"
  3560.                 readfile @ttlfile, #place
  3561.                 ##len = length(#place)
  3562.                 #line = part(#place, 1, ##len-1)
  3563. ;                if( @here == #line) #buf = "TRUE"
  3564.                 @here = #line
  3565.                 call GetTopic #line, "TITLE", #buf
  3566.             elseif( #line == "*TITLE" )
  3567.                 #buf = "FALSE"
  3568.                 readfile @ttlfile, #line
  3569.                 if( @here == #line) #buf = "TRUE"
  3570.                 @here = #line
  3571.                 call ReadTitle #line, #buf
  3572.             endif
  3573.         endif
  3574.     endloop
  3575.     closefile @ttlfile
  3576.     restoredir
  3577. return
  3578.  
  3579. ;******** クリッピングサービス読込処理手順  *********
  3580. ReadClip:
  3581.     title "クリッピングサービス"
  3582.     if( @here != "CLIP" )
  3583.         send "GO CLIP^M"
  3584.         wait  "^M^J>"
  3585.         send "3^M"
  3586.         wait  "^M^J>"
  3587.         @here = "CLIP"
  3588.     endif
  3589.     send #1+"^M"
  3590.     loopswitch
  3591.         case "^M^J◆現在ニュースはクリップされていません◆"
  3592.             wait  "^M^J>"
  3593.             return
  3594.         case "^M^J◆入力データエラー◆"
  3595.             wait  "^M^J>"
  3596.             return
  3597.         case "^M^Jmore>"
  3598.             send "^M"
  3599.         case "^M^J>"
  3600.             log "clip"+#1+"."
  3601.             send "ALL^M"
  3602.             breakloop
  3603.     endloop
  3604.     loopswitch
  3605.         case "^M^J>"
  3606.             log
  3607.             send "^M"
  3608.             breakloop
  3609.         case "^M^Jnext>"
  3610.             send "^M"
  3611.     endloop
  3612.     wait  "^M^J:"
  3613.     send "2^M"
  3614.     wait  "^M^J:"
  3615.     send "1^M"
  3616.     wait  "^M^J>"
  3617.     return
  3618.  
  3619. ;********* タイトルリスト読込処理手順  **********
  3620. ReadTitle:
  3621.     title #1+"からタイトル受信中"
  3622.     #p = "*GO "+#1
  3623.     if( #2 == "FALSE" )
  3624.         @get = "TRUE"
  3625.         call AccessForum #p                    ; フォーラムを移動する
  3626.         if( @flag == "TRUE" ) return        ; フォーラムが存在しない
  3627.     endif
  3628.     readfile @ttlfile, #line
  3629.     if( (#line == "*MESTITLE") OR (#line == "*ARTICLE")    ); 会議室タイトルの取得
  3630.         send "MES^M"
  3631.         log "tmp.txt"
  3632.         loopswitch
  3633.             case  "^M^J>", "^M^JFORUM>"
  3634.                 breakloop
  3635.             case "^M^Jmore>"
  3636.                 send "^M"
  3637.         endloop
  3638.         log
  3639.         #buf = "tmp.txt"
  3640.         #forum = #1+".FRM"
  3641.         chdir log
  3642.         openfile #buf
  3643.         appendfile #forum
  3644.         beginloop
  3645.             readfile #buf, #list
  3646.             if ( no )
  3647.                 closefile #buf
  3648.                 closefile #forum
  3649.                 delfile #buf
  3650.                 restoredir
  3651.                 breakloop
  3652.             endif
  3653.             if( #list != "more>" )
  3654.                 writefile #forum, #list
  3655.                 ##p = value(part(#list, 0, 2))
  3656.                 if( part(#list, 12, 4) == "   0" )
  3657.                     @mes[##p] = "NO"
  3658.                 else
  3659.                     @mes[##p] = "YES"
  3660.                 endif
  3661.             endif
  3662.         endloop
  3663.         #flag = "NEW"
  3664.         #IsBBS = "FALSE"
  3665.         @limit = "NO"
  3666.         if( (#line == "*ARTICLE") )
  3667.             beginloop
  3668.                 readfile @ttlfile, #line
  3669.                 if( (#line == "*LIBTITLE") OR ( #line == "*END") ) breakloop
  3670.                 if( (#line == "*MESTITLE") OR ( #line == "*END") ) breakloop
  3671.                 if( (#line == "*BUL" )
  3672.                     send "BUL^M"
  3673.                     loopswitch
  3674.                         case "^M^JBBS>", "^M^J>"
  3675.                             call GetBulAll #1
  3676.                             #IsBBS = "TRUE"
  3677.                             breakloop
  3678.                         case "^M^J◆この機能は"
  3679.                             #IsBBS = "FALSE"
  3680.                             wait "^M^JFORUM>", "^M^J>", "^M^JCCS(N)>", "^M^JCCS(P)>"
  3681.                             call ErrorLog "掲示板使用不可("+#1+")"
  3682.                             breakloop
  3683.                     endloop
  3684.                 elseif( part(#line, 0, 2) == "RC" )
  3685.                     @limit = "YES"
  3686.                     ##i = length(#line)
  3687.                     @rc = part(#line, 3, ##i-3)
  3688.                 elseif( @mes[value(#line)] == "YES" )
  3689.                     if( #flag == "TRUE" )
  3690.                         send "MES "+#line+"^M"
  3691.                     elseif( #flag == "NEW" )
  3692.                         send #line+"^M"
  3693.                         #flag = "FALSE"
  3694.                     else
  3695.                          send "RX "+#line+"^M"
  3696.                     endif
  3697.                     loopswitch
  3698.                         case "して下さい◆"
  3699.                             wait "^M^J>"
  3700.                             #flag = "TRUE"
  3701.                             call ErrorLog "会議室巡回異常("+#1+")"
  3702.                             breakloop
  3703.                         case "ありません◆"
  3704.                             wait "^M^JCCS(N)>", "^M^JCCS(P)>", "^M^J>"
  3705.                             call ErrorLog "会議室巡回異常("+#1+")"
  3706.                             #flag = "FALSE"
  3707.                             breakloop
  3708.                         case "^M^JCCS(N)>", "^M^JCCS(P)>"
  3709.                             if( @limit == "YES" )
  3710.                                 send "RC "+@rc+"^M"
  3711.                                 wait "^M^JCCS(N)>", "^M^JCCS(P)>"
  3712.                                 @limit = "NO"
  3713.                             endif
  3714.                             if( @mrebpl == "YES")
  3715.                                 call AllBPlus #1, #line
  3716.                             else
  3717.                                 call AllMread #1, #line
  3718.                             endif
  3719.                             #flag = "FALSE"
  3720.                             breakloop
  3721.                         case "^M^J>"
  3722.                             #flag = "TRUE"
  3723.                             breakloop
  3724.                     endloop
  3725.                 endif
  3726.             endloop
  3727.         endif
  3728.     endif
  3729.     #IsBBS = "FALSE"
  3730.     @limit = "FALSE"
  3731.     if( #line == "*MESTITLE" )
  3732.         beginloop
  3733.             readfile @ttlfile, #line
  3734.             if( (#line == "*LIBTITLE") OR ( #line == "*END") ) breakloop
  3735.             if( (#line == "*BUL" )
  3736.                 send "BUL^M"
  3737.                 loopswitch
  3738.                     case "^M^JBBS>", "^M^J>"
  3739.                         call GetBul #1
  3740.                         #IsBBS = "TRUE"
  3741.                         breakloop
  3742.                     case "^M^J◆この機能は"
  3743.                         #IsBBS == "FALSE"
  3744.                         wait "^M^JFORUM>", "^M^J>", "^M^JCCS(N)>", "^M^JCCS(P)>"
  3745.                         call ErrorLog "掲示板使用不可("+#1+")"
  3746.                         breakloop
  3747.                 endloop
  3748.             elseif( (part(#line, 0, 1) == "#") AND (#IsBBS == "TRUE") )
  3749.                 ##i = length(#line)
  3750.                 #num = part(#line, 1, ##i-1)
  3751.                 send "READ "+#num+"^M"
  3752.                 log @logdir+"\"+#1+"\"+#1+".M21"
  3753.                 wait "^M^J>"
  3754.                 log
  3755.                 send "^M"
  3756.                 wait "^M^JBBS>"
  3757.             elseif( part(#line, 0, 2) == "RC" )
  3758.                 @limit = "YES"
  3759.                 ##i = length(#line)
  3760.                 @rc = part(#line, 3, ##i-3)
  3761.             elseif( @mes[value(#line)] == "YES" )
  3762.                 if( #flag == "TRUE" )
  3763.                     send "MES "+#line+"^M"
  3764.                 elseif( #flag == "NEW" )
  3765.                     send #line+"^M"
  3766.                     #flag = "FALSE"
  3767.                 else
  3768.                      send "RX "+#line+"^M"
  3769.                 endif
  3770.                 loopswitch
  3771.                     case "して下さい◆"
  3772.                         wait "^M^J>"
  3773.                         call ErrorLog "会議室巡回異常("+#1+")"
  3774.                         #flag = "TRUE"
  3775.                         breakloop
  3776.                     case "ありません◆"
  3777.                         wait "^M^JCCS(N)>", "^M^JCCS(P)>", "^M^J>"
  3778.                         call ErrorLog "会議室巡回異常("+#1+")"
  3779.                         #flag = "FALSE"
  3780.                         breakloop
  3781.                     case "^M^JCCS(N)>", "^M^JCCS(P)>"
  3782.                         if( @limit == "YES" )
  3783.                             send "RC "+@rc+"^M"
  3784.                             wait "^M^JCCS(N)>", "^M^JCCS(P)>"
  3785.                             @limit = "NO"
  3786.                         endif
  3787.                         #file =  @logdir+"\"+#1+"\"+#1+".R"+#line
  3788.                         call PADNAV1.SCR:GetMesTitle #file
  3789.                         #flag = "FALSE"
  3790.                         breakloop
  3791.                     case "^M^J現在、サービスは"
  3792.                         wait "^M^J>", "^M^JFORUM>", "^M^JCCS(N)>", "^M^JCCS(P)>"
  3793.                         call ErrorLog "フォーラム内混雑("+#1+")"
  3794.                         #flag = "TRUE"
  3795.                         breakloop
  3796.                     case "^M^J>"
  3797.                         #flag = "TRUE"
  3798.                         breakloop
  3799.                 endloop
  3800.             endif
  3801.         endloop
  3802.     endif
  3803.     if( #line == "*LIBTITLE" )                ; ライブラリリストの取得
  3804.         #fname = @logdir+"\"+#1+".LIB"
  3805.         #fbak = @logdir+"\"+#1+".BAK"
  3806.         renamefile #fname, #fbak
  3807.         readfile @ttlfile, #datenew
  3808.         readfile @ttlfile, #dateini
  3809.         send "LIB^M"
  3810.         log #fname
  3811.         loopswitch
  3812.             case "^M^Jmore>"
  3813.                 send "^M"
  3814.             case  "^M^J>"
  3815.                 delfile #fbak
  3816.                 breakloop
  3817.             case "^M^J-現在、公開ライブラリ"
  3818.                 wait "^M^J>", "^M^JFORUM>", "^M^JCCS(N)>", "^M^JCCS(P)>"
  3819.                 call ErrorLog "ライブラリが存在しない("+#1+")"
  3820.                 beginloop
  3821.                     readfile @ttlfile, #line
  3822.                     if( #line == "*END" ) breakloop
  3823.                 endloop
  3824.                 log
  3825.                 delfile #fname
  3826.                 renamefile #fbak, #fname
  3827.                 return
  3828.             case "^M^J現在、サービスは"
  3829.                 wait "^M^J>", "^M^JFORUM>", "^M^JCCS(N)>", "^M^JCCS(P)>"
  3830.                 call ErrorLog "ライブラリ混雑("+#1+")"
  3831.                 beginloop
  3832.                     readfile @ttlfile, #line
  3833.                     if( #line == "*END" ) breakloop
  3834.                 endloop
  3835.                 log
  3836.                 delfile #fname
  3837.                 renamefile #fbak, #fname
  3838.                 return
  3839.             case "このフォーラムでは利用できません", "^M^J◆この機能は本"
  3840.                 wait "^M^J>", "^M^JFORUM>", "^M^JCCS(N)>", "^M^JCCS(P)>"
  3841.                 call ErrorLog "ライブラリ利用不可("+#1+")"
  3842.                 beginloop
  3843.                     readfile @ttlfile, #line
  3844.                     if( #line == "*END" ) breakloop
  3845.                 endloop
  3846.                 log
  3847.                 delfile #fname
  3848.                 renamefile #fbak, #fname
  3849.                 return
  3850.         endloop
  3851.         log
  3852.         if( #line != "*END )
  3853.             readfile @ttlfile, #line
  3854.             if( #line == "*END" ) return
  3855.             send #line+"^M"
  3856.             #file =  @logdir+"\"+#1+"\"+#1+".L"+#line
  3857.             call PADNAV1.SCR:GetLibList #file, #datenew, #dateini
  3858.             beginloop
  3859.                 readfile @ttlfile, #line
  3860.                 if( #line == "*END" ) breakloop
  3861.                 send "LX "+#line+"^M"
  3862.                 #file =  @logdir+"\"+#1+"\"+#1+".L"+#line
  3863.                 call PADNAV1.SCR:GetLibList #file, #datenew, #dateini
  3864.             endloop
  3865.         endif
  3866.     endif
  3867.     return
  3868.  
  3869. ;********* 掲示板読取コマンド  **********
  3870. GetBul:
  3871.     delfile @logdir+"\"+#1+"\"+#1+".R21"
  3872.     log @logdir+"\"+#1+"\"+#1+".R21"
  3873.     send "READ^M"
  3874.     loopswitch
  3875.         case postmilliidle(500) "^M^JBBS>"
  3876.             breakloop
  3877.         case postmilliidle(500) "^M^J>"
  3878.             log
  3879.             send "E^M"
  3880.         case postmilliidle(500) "^M^Jnext>"
  3881.             send "^M"
  3882.     endloop
  3883.     return
  3884.  
  3885. ;********* 掲示板読取コマンド(全項目読取)  **********
  3886. GetBulAll:
  3887.     log @logdir+"\"+#1+"\"+#1+".M21"
  3888.     send "READ ALL^M"
  3889.     loopswitch
  3890.         case postmilliidle(500) "^M^JBBS>"
  3891.             breakloop
  3892.         case postmilliidle(500) "^M^J>"
  3893.             log
  3894.             send "E^M"
  3895.         case postmilliidle(500) "^M^Jnext>"
  3896.             send "^M"
  3897.     endloop
  3898.     return
  3899.  
  3900. ;********* 掲示板リスト取得コマンド  **********
  3901. GetBbsTitle:
  3902.     if(#1 == "1")
  3903.         #dest = @logdir+"\BBS\BBS.M01"
  3904.     else
  3905.         if( length(#1) == 1 )
  3906.             #dest = @logdir+"\BBS\BBS.R0"+#1
  3907.         else
  3908.             #dest = @logdir+"\BBS\BBS.R"+#1
  3909.         endif
  3910.     endif
  3911.     call PADNAV1.SCR:GetBbsList @logdir
  3912.     title "掲示板リストを取得中"
  3913.     openfile #dest
  3914.     while(#buf1 != "番号")
  3915.         readfile #dest, #buf
  3916.         if( no ) breakloop
  3917.         #buf1 = part(#buf, 0, 4)
  3918.     endwhile
  3919.     readfile #dest, #buf
  3920.     ##len = length(#buf)
  3921.     ##br = 30
  3922.     if( ##len > ##br ) #scan = part(#buf, ##br, ##len-##br)
  3923.     closefile #2
  3924.     if(#1 == "1")
  3925.         chdir log
  3926.         delfile #dest
  3927.         restoredir
  3928.         log #dest
  3929.         send #1+"^M"
  3930.     else
  3931.         send #1+"^M"
  3932.         wait "^M^JBBS>"
  3933.         chdir log
  3934.         delfile #dest
  3935.         restoredir
  3936.         log #dest
  3937.         send "READ^M"
  3938.     endif
  3939.     loopswitch
  3940.         case #scan
  3941.             sendbreak
  3942.         case "続き (改行で次メニュー  E:終了)"
  3943.             log
  3944.             wait "^M^J>"
  3945.             breakloop
  3946.         case postmilliidle(500) "^M^JBBS>"
  3947.             breakloop
  3948.         case postmilliidle(500) "^M^J>"
  3949.             log
  3950.             send "E^M"
  3951.         case postmilliidle(500) "^M^Jnext>"
  3952.             send "^M"
  3953.     endloop
  3954.     return
  3955.  
  3956. ;********* 端末設定コントロールコマンド  **********
  3957. SetMenuOff:
  3958.     send "GO MEMBER^M"
  3959.     wait "^M^J>"
  3960.     send "7^M"
  3961.     wait "^M^J>"
  3962.     send "3^M"
  3963.     wait "^M^J:"
  3964.     send "2^M"
  3965.     wait "^M^J>"
  3966.     send "4^M"
  3967.     wait "^M^J:"
  3968.     send "2^M"
  3969.     wait "^M^J>"
  3970.     @menu = "OFF"
  3971. return
  3972.  
  3973. SetMenuOn:
  3974.     send "GO MEMBER^M"
  3975.     wait "^M^J>"
  3976.     send "7^M"
  3977.     wait "^M^J>"
  3978.     send "3^M"
  3979.     wait "^M^J:"
  3980.     send "1^M"
  3981.     wait "^M^J>"
  3982.     send "4^M"
  3983.     wait "^M^J:"
  3984.     send "1^M"
  3985.     wait "^M^J>"
  3986.     @menu = "ON"
  3987. return
  3988.  
  3989. ;********* フォーラムオプションコマンド  **********
  3990. ForumMenuOff:
  3991.     send "GO MEMBER^M"
  3992.     wait "^M^J>"
  3993.     send "6^M"
  3994.     wait "^M^J:"
  3995.     send "1^M"
  3996.     wait "^M^J:"
  3997.     send "2^M"
  3998.     wait "^M^J:"
  3999.     send "2^M"
  4000.     wait "^M^J:"
  4001.     send "^M"
  4002.     wait "^M^J:"
  4003.     send "2^M"
  4004.     wait "^M^J:"
  4005.     send "1^M"
  4006.     wait "^M^J>"
  4007.     send #1+"^M"
  4008.     log #2
  4009.     loopswitch
  4010.         case postmilliidle(500) "^M^JFORUM>"
  4011.             @frmmenu = "OFF"
  4012.             breakloop
  4013.         case postmilliidle(500) "^M^J>"
  4014.             @frmmenu = "ERR"
  4015.             breakloop
  4016.     endloop
  4017.     log
  4018. return
  4019.  
  4020. ForumMenuOn:
  4021.     send "GO MEMBER^M"
  4022.     wait "^M^J>"
  4023.     send "6^M"
  4024.     wait "^M^J:"
  4025.     send "1^M"
  4026.     wait "^M^J:"
  4027.     send "1^M"
  4028.     wait "^M^J:"
  4029.     send "1^M"
  4030.     wait "^M^J:"
  4031.     send "^M"
  4032.     wait "^M^J:"
  4033.     send "2^M"
  4034.     wait "^M^J:"
  4035.     send "1^M"
  4036.     loopswitch
  4037.         case "^M^J>"
  4038.             @frmmenu = "ON"
  4039.             breakloop
  4040.         case "^M^JFORUM>", "^M^JPATIO(N)>", "^M^JCCS(P)>", "^M^JCCS(N)>"
  4041.             @frmmenu = "ERR"
  4042.             breakloop
  4043.     endloop
  4044. return
  4045.  
  4046. ;***************  シェアウェア送金  *****************
  4047.  
  4048. Share:
  4049.     readfile @padfile, #num
  4050.     title "シェアウェア送金作業中"
  4051.     @flag = "FALSE"
  4052.     send "GO SWREG^M"
  4053.     wait "^M^J>"
  4054.     send "3^M"
  4055.     wait "^M^J>"
  4056.     send "2^M"
  4057.     wait "^M^J>"
  4058.     send "1^M"
  4059.     wait "^M^J:"
  4060.     send #num+"^M"
  4061.     loopswitch
  4062.         case "^M^J◆"
  4063.             wait  "^M^J:"
  4064.             timeoutmessage "シェアウェア番号が正しくありません",3
  4065.             call ErrorLog "シェアウェア番号指定ミス "+#num
  4066.             send "E^M"
  4067.             wait "^M^J>"
  4068.             return
  4069.         case "^M^J:"
  4070.             breakloop
  4071.     endloop
  4072.     send "1^M"
  4073.     wait  "^M^J:"
  4074.     question "本当に送金してもいいですか?"
  4075.     if( yes )
  4076.         send "1^M"
  4077.         wait "^M^J:"
  4078.         send "E^M"
  4079.     else
  4080.         send "2^M"
  4081.         wait "^M^J>", "^M^J:"
  4082.         send "E^M"
  4083.     endif
  4084.     wait "^M^J>"
  4085.     return
  4086.  
  4087. ;********* プロフィール登録コマンド  **********
  4088. SetProf:
  4089.     readfile @padfile, #fname
  4090.     openfile #fname
  4091.     if( no )
  4092.         timeoutmessage "送信するファイルをオープンできませんでした", 3
  4093.         call ErrorLog "プロフィールファイルが存在しない "+#fname
  4094.         return
  4095.     endif
  4096.     title "プロフィールを登録中"
  4097.     send "GO MEMBER^M"
  4098.     wait "^M^J>"
  4099.     send "5^M"
  4100.     wait "^M^J>"
  4101.     send "2^M"
  4102.     wait "終了は行頭で/E)^M^J"
  4103.     beginloop
  4104.         readfile #fname, #line
  4105.         if( no ) breakloop
  4106.         if( #line == "/E" OR #line == "/POST") breakloop
  4107.         #com = part(#line, 0, 2)
  4108.         if( ( @comment == "NO" ) OR ( #com != "//" ) ) send #line+"^M"
  4109.     endloop
  4110.     send "/POST^M"
  4111.     wait "^M^J:"
  4112.     send "2^M"
  4113.     wait "^M^J:"
  4114.     send "1^M"
  4115.     wait "^M^J>"
  4116. return
  4117.  
  4118. ;********* 特設掲示板のサブメニューを取得するコマンド  **********
  4119. GetTopic:
  4120.     if( #2 == "PAD" )
  4121.         readfile @padfile, #line
  4122.     else
  4123.         readfile @ttlfile, #line
  4124.     endif
  4125. restart:
  4126.     #p = "*GO "+#1
  4127.     if( #3 == "FALSE" )
  4128.         call AccessTopic #p                    ; 特設掲示板に移動する
  4129.         if( @flag == "TRUE" ) return        ; 特設掲示板が存在しない
  4130.     endif
  4131.     title #1+"から情報を取得中"
  4132.     @@layer = 0
  4133.     ##i = length(#line)
  4134.     @kind = part(#line, 1, 3)
  4135.     @root = part(#line, 5, ##i-5)
  4136.     @dest = drop(@root, ",")
  4137.     @floor[@@layer] = @dest
  4138.     @@layer = @@layer+1
  4139.     @root = search(@root, ",")
  4140.     ##i = length(@root)
  4141.     @root = part(@root, 1, ##i-1)
  4142.     @froot = @logdir+"\"+#1+"\"
  4143.     if( length(@dest) == 1 )
  4144.         @flist = @froot+#1+".R0"+@dest
  4145.         @flib = @froot+#1+".L0"+@dest
  4146.     else
  4147.         @flist = @froot+#1+".R"+@dest
  4148.         @flib = @froot+#1+".L"+@dest
  4149.     endif
  4150.     call getscanstr
  4151.     chdir log
  4152.     delfile @flist
  4153.     restoredir
  4154.     send @dest+"^M"
  4155.     log @flist
  4156.     #conf = "FALSE"
  4157.     #scanstop = "FALSE"
  4158.     loopswitch
  4159.         case @scan
  4160.             #scanstop = "TRUE"
  4161.         case "^M^J番号 発言 (未読)  最新  会議室名"
  4162.             #conf = "TRUE"
  4163.         case postmilliidle(500) "^M^J>"
  4164.             log
  4165.             @forum = @flist
  4166.             @lib = @flib
  4167.             if( length(@dest) == 1 )
  4168.                 @froot = @froot+"SUB0"+@dest+"\"
  4169.             else
  4170.                 @froot = @froot+"SUB"+@dest+"\"
  4171.             endif
  4172.             if( ##i == 0 )
  4173.                 send "E^M"
  4174.                 wait postmilliidle(500) "^M^J>"
  4175.                 @tpcflag = "FALSE"
  4176.                 call analize #1, #2
  4177.                 #line = @gotline
  4178.                 if( @tpcflag == "TRUE" )
  4179.                     goto restart
  4180.                 elseif( @tpcflag == "END" )
  4181.                     breakloop
  4182.                 endif
  4183.                 send @dest+"^M"
  4184.                 log @flist
  4185.             else
  4186.                 @dest = drop(@root, ",")
  4187.                 @root = search(@root, ",")
  4188.                 ##i = length(@root)
  4189.                 if( ##i != 0 )
  4190.                     @root = part(@root, 1, ##i-1)
  4191.                     if( length(@dest) == 0 )
  4192.                         @dest = @root
  4193.                         ##i = 0
  4194.                     endif
  4195.                 endif
  4196.                 if( length(@dest) == 1 )
  4197.                     @flist = @froot+#1+".R0"+@dest
  4198.                     @flib = @froot+#1+".L0"+@dest
  4199.                 else
  4200.                     @flist = @froot+#1+".R"+@dest
  4201.                     @flib = @froot+#1+".L"+@dest
  4202.                 endif
  4203.                 call getscanstr
  4204.                 @floor[@@layer] = @dest
  4205.                 @@layer = @@layer+1
  4206.                 if( #conf == "FALSE" )
  4207.                     chdir log
  4208.                     delfile @flist
  4209.                     restoredir
  4210.                 else
  4211.                     #conf = "FALSE"
  4212.                 endif
  4213.                 send @dest+"^M"
  4214.                 log @flist
  4215.             endif
  4216.         case postmilliidle(500) "^M^JBBS>"
  4217.             send "READ^M"
  4218.             loopswitch
  4219.                 case postmilliidle(500) "^M^Jmore>"
  4220.                     send "^M"
  4221.                 case postmilliidle(500) "^M^JBBS>"
  4222.                     log
  4223.                     send "E^M"
  4224.                 case postmilliidle(500) "^M^J>"
  4225.                     @tpcflag = "FALSE"
  4226.                     call analize #1, #2
  4227.                     #line = @gotline
  4228.                     if( @tpcflag == "TRUE" )
  4229.                         goto restart
  4230.                     elseif( @tpcflag == "END" )
  4231.                         breakloop
  4232.                     endif
  4233.                     send @dest+"^M"
  4234.                     breakloop
  4235.             endloop
  4236.             if( #line == "*END" ) breakloop
  4237.         case postmilliidle(500) "^M^JFORUM>"
  4238.             log
  4239.             @forum = @flist
  4240.             @lib = @flib
  4241.             if( length(@dest) == 1 )
  4242.                 @froot = @froot+"SUB0"+@dest+"\"
  4243.             else
  4244.                 @froot = @froot+"SUB"+@dest+"\"
  4245.             endif
  4246.             if( length(@root) == 1 )
  4247.                 @flist = @froot+#1+".R0"+@root
  4248.                 @flib = @froot+#1+".L0"+@root
  4249.             else
  4250.                 @flist = @froot+#1+".R"+@root
  4251.                 @flib = @froot+#1+".L"+@root
  4252.             endif
  4253.             @dest = @root
  4254.             beginloop
  4255.                 #flag = "FALSE"
  4256.                 #first = "TRUE"
  4257.                 switch @kind
  4258.                     case "MES"
  4259.                         send "MES^M"
  4260.                         log "tmp.txt"
  4261.                         wait  "^M^J>", "^M^JFORUM>"
  4262.                         log
  4263.                         #buf = "tmp.txt"
  4264.                         chdir log
  4265.                         openfile #buf
  4266.                         appendfile @forum
  4267.                         beginloop
  4268.                             readfile #buf, #line
  4269.                             if ( no )
  4270.                                 closefile #buf
  4271.                                 closefile @forum
  4272.                                 delfile #buf
  4273.                                 restoredir
  4274.                                 breakloop
  4275.                             endif
  4276.                             writefile @forum, #line
  4277.                             ##p = value(part(#line, 0, 2))
  4278.                             if( part(#line, 12, 4) == "   0" )
  4279.                                 @mes[##p] = "NO"
  4280.                             else
  4281.                                 @mes[##p] = "YES"
  4282.                             endif
  4283.                         endloop
  4284.                         beginloop
  4285.                             if( @mes[value(@dest)] == "YES" )
  4286.                                 if( #first == "TRUE" )
  4287.                                     send @dest+"^M"
  4288.                                     #first = "FALSE"
  4289.                                 else
  4290.                                     send "RX "+@dest+"^M"
  4291.                                 endif
  4292.                                 loopswitch
  4293.                                     case "して下さい◆"
  4294.                                         wait "^M^J>"
  4295.                                         call ErrorLog "特設掲示板リスト取得ミス("+#1+")"
  4296.                                         #flag = "TRUE"
  4297.                                         breakloop
  4298.                                     case "ありません◆"
  4299.                                         wait "^M^JCCS(N)>", "^M^JCCS(P)>", "^M^J>"
  4300.                                         call ErrorLog "特設掲示板リスト取得ミス("+#1+")"
  4301.                                         #flag = "FALSE"
  4302.                                         breakloop
  4303.                                     case "^M^JCCS(N)>", "^M^JCCS(P)>"
  4304.                                         if( @limit == "YES" )
  4305.                                             send "RC "+@rc+"^M"
  4306.                                             wait "^M^JCCS(N)>", "^M^JCCS(P)>"
  4307.                                             @limit = "NO"
  4308.                                         endif
  4309.                                         call PADNAV1.SCR:GetMesTitle @flist
  4310.                                         #flag = "FALSE"
  4311.                                         breakloop
  4312.                                     case "^M^J>"
  4313.                                         #flag = "TRUE"
  4314.                                         breakloop
  4315.                                 endloop
  4316.                             endif
  4317.                             @tpcflag = "FALSE"
  4318.                             call analize #1, #2
  4319.                             #line = @gotline
  4320.                             if( @tpcflag == "TRUE" )
  4321.                                 goto restart
  4322.                             elseif( @tpcflag == "END" )
  4323.                                 breakloop
  4324.                             endif
  4325.                         endloop
  4326.                         if( @tpcflag == "END" ) breakloop
  4327.                     case "LIB"
  4328.                         beginloop
  4329.                             if( #2 == "PAD" )
  4330.                                 readfile @padfile, #datenew
  4331.                                 readfile @padfile, #dateini
  4332.                             else
  4333.                                 readfile @ttlfile, #datenew
  4334.                                 readfile @ttlfile, #dateini
  4335.                             endif
  4336.                             if( #first == "TRUE" )
  4337.                                 send "LIB "+@dest+"^M"
  4338.                                 #first = "FALSE"
  4339.                             else
  4340.                                 send "LX "+@dest+"^M"
  4341.                             endif
  4342.                             call GetLibList @flib, #datenew, #dateini
  4343.                             @tpcflag = "FALSE"
  4344.                             call analize #1, #2
  4345.                             #line = @gotline
  4346.                             if( @tpcflag == "TRUE" )
  4347.                                 goto restart
  4348.                             elseif( @tpcflag == "END" )
  4349.                                 breakloop
  4350.                             endif
  4351.                         endloop
  4352.                         if( @tpcflag == "END" ) breakloop
  4353.                     case "TPC"
  4354.                         log @forum
  4355.                         send "MES^M"
  4356.                         loopswitch
  4357.                             case "^M^J>"
  4358.                                 log
  4359.                                 chdir log
  4360.                                 delfile @lib
  4361.                                 restoredir
  4362.                                 send "LIB^M"
  4363.                                 log @lib
  4364.                                 loopswitch
  4365.                                     case "^M^J>"
  4366.                                         log
  4367.                                         send "E^M"
  4368.                                     case "^M^JLIB>"
  4369.                                         log
  4370.                                         send "E^M"
  4371.                                     case "^M^JFORUM>"
  4372.                                         send "E^M"
  4373.                                         wait "^M^J>"
  4374.                                         breakloop
  4375.                                 endloop
  4376.                                 breakloop
  4377.                             case "^M^JFORUM>"
  4378.                                 send "E^M"
  4379.                                 wait "^M^J>"
  4380.                                 breakloop
  4381.                         endloop
  4382.                         breakloop
  4383.                 endswitch
  4384.             endloop
  4385.             if( @tpcflag == "END" ) breakloop
  4386.             @tpcflag = "FALSE"
  4387.             call analize #1, #2
  4388.             #line = @gotline
  4389.             if( @tpcflag == "TRUE" )
  4390.                 goto restart
  4391.             elseif( @tpcflag == "END" )
  4392.                 breakloop
  4393.             endif
  4394.             send @dest+"^M"
  4395.             log @flist
  4396.         case postmilliidle(500) "^M^JCCS(N)>", postmilliidle(500) "^M^JCCS(P)>"
  4397.             log
  4398.             openfile @forum
  4399.             beginloop
  4400.                 readfile @forum, #line
  4401.                 if ( no )
  4402.                     closefile @forum
  4403.                     breakloop
  4404.                 endif
  4405.                 ##p = value(part(#line, 0, 2))
  4406.                 if( part(#line, 12, 4) == "   0" )
  4407.                     @mes[##p] = "NO"
  4408.                 else
  4409.                     @mes[##p] = "YES"
  4410.                 endif
  4411.             endloop
  4412.             beginloop
  4413.                 if( @mes[value(@dest)] == "YES" )
  4414.                     if( @limit == "YES" )
  4415.                         send "RC "+@rc+"^M"
  4416.                         wait "^M^JCCS(N)>", "^M^JCCS(P)>"
  4417.                         @limit = "NO"
  4418.                     endif
  4419.                     call PADNAV1.SCR:GetMesTitle @flist
  4420.                     #flag = "FALSE"
  4421.                 endif
  4422.                 @tpcflag = "FALSE"
  4423.                 call analize #1, #2
  4424.                 #line = @gotline
  4425.                 if( @tpcflag == "TRUE" )
  4426.                     goto restart
  4427.                 elseif( @tpcflag == "END" )
  4428.                     breakloop
  4429.                 endif
  4430.                 if( @mes[value(@dest)] == "YES" )
  4431.                     send "RX "+@dest+"^M"
  4432.                     wait "^M^JCCS(N)>", "^M^JCCS(P)>"
  4433.                 endif
  4434.             endloop
  4435.             breakloop
  4436.         case "^M^J1:フォーラム概要  2:一時利用  3:入会手続き"
  4437.             wait "^M^J>"
  4438.             send "3^M"
  4439.             wait "^M^J:"
  4440.             send "^M"
  4441.             wait "^M^J:"
  4442.             send "1^M"
  4443.             wait "^M^J:"
  4444.             send "1^M"
  4445.         case postmilliidle(500) "^M^Jmore>"
  4446.             if( #scanstop == "TRUE" )
  4447.                 log
  4448.                 breakloop
  4449.             else
  4450.                 send "^M"
  4451.             endif
  4452.     endloop
  4453. return
  4454.  
  4455. analize:
  4456.     if( #2 == "PAD" )
  4457.         readfile @padfile, #line
  4458.     else
  4459.         readfile @ttlfile, #line
  4460.     endif
  4461.     @gotline = #line
  4462.     if( #line == "*END" )
  4463.         @tpcflag = "END"
  4464.         return
  4465.     endif
  4466.     ##newlayer = 0
  4467.     ##i = length(#line)
  4468.     #newroot = part(#line, 5, ##i-5)
  4469.     #newdest = drop(#newroot, ",")
  4470.     #newroot = search(#newroot, ",")
  4471.     ##i = length(#newroot)
  4472.     if( ##i != 0 ) #newroot = part(#newroot, 1, ##i-1)
  4473.     if( length(#newdest) == 0 ) #newdest = #newroot
  4474.     @froot = @logdir+"\"+#1+"\"
  4475.     if( length(#newdest) == 1 )
  4476.         @flist = @froot+#1+".R0"+#newdest
  4477.         @flib = @froot+#1+".L0"+#newdest
  4478.     else
  4479.         @flist = @froot+#1+".R"+#newdest
  4480.         @flib = @froot+#1+".L"+#newdest
  4481.     endif
  4482.     while( #newdest == @floor[##newlayer] )
  4483.         if( length(#newdest) == 1 )
  4484.             @froot = @froot+"SUB0"+#newdest+"\"
  4485.         else
  4486.             @froot = @froot+"SUB"+#newdest+"\"
  4487.         endif
  4488.         ##newlayer = ##newlayer+1
  4489.         if( length(#newroot) == 0 ) breakloop
  4490.         #newdest = drop(#newroot, ",")
  4491.         #newroot = search(#newroot, ",")
  4492.         ##i = length(#newroot)
  4493.         if( ##i != 0 ) #newroot = part(#newroot, 1, ##i-1)
  4494.         if( length(#newdest) == 0 ) #newdest = #newroot
  4495.         @forum = @flist
  4496.         @lib = @flib
  4497.         if( length(#newdest) == 1 )
  4498.             @flist = @froot+#1+".R0"+#newdest
  4499.             @flib = @froot+#1+".L0"+#newdest
  4500.         else
  4501.             @flist = @froot+#1+".R"+#newdest
  4502.             @flib = @froot+#1+".L"+#newdest
  4503.         endif
  4504.     endwhile
  4505.     if( @@layer-##newlayer > 1 )
  4506.         @tpcflag = "TRUE"
  4507.         return
  4508.     endif
  4509.     #newkind = part(#line, 1, 3)
  4510.     if( #newkind != @kind )
  4511.         @kind = #newkind
  4512.         @tpcflag = "TRUE"
  4513.         return
  4514.     endif
  4515.     @dest = #newdest
  4516.     @root = #newroot
  4517.     @@layer = ##newlayer
  4518.     @floor[@@layer] = #newdest
  4519.     @@layer = @@layer+1
  4520. return
  4521.  
  4522. getscanstr:
  4523.     openfile @flist
  4524.     while(#buf1 != "番号")
  4525.         readfile @flist, #buf
  4526.         if( no ) breakloop
  4527.         #buf1 = part(#buf, 0, 4)
  4528.     endwhile
  4529.     @scan = ""
  4530.     readfile @flist, #buf
  4531.     if( yes )
  4532.         #slash = part(#buf, 8, 1)
  4533.         if( #slash == "/" ) ##br = 6
  4534.         #slash = part(#buf, 18, 1)
  4535.         #colon = part(#buf, 24, 1)
  4536.         if( (#slash == "/") AND (#colon == ":") ) ##br = 35
  4537.         if( (#slash == "/") AND (#colon != ":") ) ##br = 30
  4538.         ##len = length(#buf)
  4539.         if( ##len > ##br ) @scan = part(#buf, ##br, ##len-##br)
  4540.     endif
  4541.     closefile @flist
  4542. return
  4543.  
  4544. ;********* サービスメニューからフォーラム一覧を取得するコマンド  **********
  4545. GetAllForum:
  4546.     title "全フォーラム一覧を取得中"
  4547.     chdir log
  4548.     delfile "allfrm.log"
  4549.     restoredir
  4550.     log "allfrm.log"
  4551.     send "GO FLIST^M"
  4552.     wait "^M^J>"
  4553.     log
  4554.     ##i = 1
  4555.     #flag = "FALSE"
  4556.     while(##i < 20)
  4557.         send @num[##i]+"^M"
  4558.         log "allfrm.log"
  4559.         loopswitch
  4560.             case "^M^J>"
  4561.                 log
  4562.                 breakloop
  4563.             case "^M^J◆番号又は"
  4564.                 call ErrorLog "フォーラム一覧取得ミス"
  4565.                 #flag = "TRUE"
  4566.             case "^M^Jmore>"
  4567.                 send "^M"
  4568.             case "^M^J番号 (改行で次頁)"
  4569.                 send "^M"
  4570.         endloop
  4571.         if( #flag == "TRUE" ) breakloop
  4572.         send "E^M"
  4573.         wait "^M^J>"
  4574.         ##i = ##i + 1
  4575.     endwhile
  4576.     log
  4577. return
  4578.  
  4579. ;********* シスオペ宛メール送信  **********
  4580. ToSysop:
  4581.     title #1+"のSysop宛にメールを送信します"
  4582.     #forum = "*GO "+#1
  4583.     if( #2 == "FALSE" )
  4584.         @get = "FALSE"
  4585.         call AccessForum #forum                    ; フォーラムを移動する
  4586.         if( @flag == "TRUE" ) return        ; フォーラムが存在しない
  4587.     endif
  4588.     send "sym^M"
  4589.     loopswitch
  4590.         case "^M^J>"
  4591.             send "1^M"
  4592.             wait "^M^J本文(300 行まで 終了は行頭で/E)"
  4593.             beginloop
  4594.                 readfile @padfile, #line
  4595.                 if( no ) breakloop
  4596.                 if( #line == "/E" OR #line == "/POST") breakloop
  4597.                 #com = part(#line, 0, 2)
  4598.                 if( ( @comment == "NO" ) OR ( #com != "//" ) ) send #line+"^M"
  4599.             endloop
  4600.             send "/POST^M"
  4601.             loopswitch
  4602.                 case "^M^JSYSOP 宛メール"
  4603.                     timeoutmessage "本文がありません", 3
  4604.                     call ErrorLog "SYSOP宛メールに本文がない "+#1
  4605.                 case "^M^J>"
  4606.                     breakloop
  4607.                 case "^M^JFORUM>"
  4608.                     breakloop
  4609.             endloop
  4610.             breakloop
  4611.         case "^M^J◆"
  4612.             wait "^M^JFORUM>"
  4613.             timeoutmessage "メールの送信が出来ませんでした", 3
  4614.             call ErrorLog "SYSOP宛メール送信ミス "+#1
  4615.             breakloop
  4616.     endloop
  4617. return
  4618.  
  4619. ;********* 書き込みダウンロード **********
  4620. DownMyArticle:
  4621.     if( @article == "NO" )
  4622.         send "RC D^M"
  4623.         wait  "^M^JCCS(N)>", "^M^JCCS(P)>", "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  4624.         @readreq = "FALSE"
  4625.         return
  4626.     endif
  4627.     log @readsay
  4628.     send "MRE MODE:NEW^M"
  4629.     wait  postmilliidle(500) "^M^JCCS(N)>", postmilliidle(500) "^M^JCCS(P)>", postmilliidle(500) "^M^JPATIO(N)>", postmilliidle(500) "^M^JPATIO(P)>"
  4630.     log
  4631.     send "RC D^M"
  4632.     wait  "^M^JCCS(N)>", "^M^JCCS(P)>", "^M^JPATIO(N)>", "^M^JPATIO(P)>"
  4633.     @readreq = "FALSE"
  4634. return
  4635.  
  4636. ;********* 不在通知登録コマンド  **********
  4637. SetFuzai:
  4638.     if( @fuzai == "TRUE" )
  4639.         title "不在通知を解除中"
  4640.         @here = "MAIL"
  4641.         send "GO MAIL^M"
  4642.         wait "^M^JMAIL>"
  4643.         send "OPT^M"
  4644.         wait "^M^J>"
  4645.         send "1^M"
  4646.         wait "^M^J>"
  4647.         send "3^M"
  4648.         wait "^M^J:"
  4649.         send "1^M"
  4650.         wait "^M^J>"
  4651.     endif
  4652.     title "不在通知を登録中"
  4653.     if( @fuzai != "TRUE" )
  4654.         send "GO MAIL^M"
  4655.         wait "^M^JMAIL>"
  4656.     endif
  4657.     send "OPT^M"
  4658.     wait "^M^J>"
  4659.     send "1^M"
  4660.     wait "^M^J>"
  4661.     send "1^M"
  4662.     wait "終了は行頭で/E)^M^J"
  4663.      if (@id == "ID1")    #file = @logdir+"\fuzai1."
  4664.      if (@id == "ID2")    #file = @logdir+"\fuzai2."
  4665. ;     appendfile #file
  4666. ;    if( no ) createfile #file
  4667.     createfile #file
  4668.     beginloop
  4669.         readfile @padfile, #line
  4670.         if( no ) breakloop
  4671.          writefile #file, #line
  4672.         if( #line == "/E" OR #line == "/POST") breakloop
  4673.         #com = part(#line, 0, 2)
  4674.         if( ( @comment == "NO" ) OR ( #com != "//" ) ) send #line+"^M"
  4675.     endloop
  4676.      closefile #file
  4677.     send "/POST^M"
  4678.     loopswitch
  4679.         case "^M^J:"
  4680.             send "2^M"
  4681.             wait "^M^J:"
  4682.             send "1^M"
  4683.         case "^M^J>"
  4684.             breakloop
  4685.     endloop
  4686.     send "E^M"
  4687.     wait "^M^JMAIL>", "^M^J>"
  4688. return
  4689.  
  4690. ;********* 不在通知解除コマンド  **********
  4691. ResetFuzai:
  4692.     if( @fuzai == "FALSE" )
  4693.         timeoutmessage "不在通知が登録されていません", 3
  4694.         call ErrorLog "不在通知が登録されていないのに解除しようとした"
  4695.         return
  4696.     endif
  4697.     title "不在通知を解除中"
  4698.     @here = "MAIL"
  4699.     send "GO MAIL^M"
  4700.     wait "^M^JMAIL>"
  4701.     send "OPT^M"
  4702.     wait "^M^J>"
  4703.     send "1^M"
  4704.     wait "^M^J>"
  4705.     send "3^M"
  4706.     wait "^M^J:"
  4707.     send "1^M"
  4708.     wait "^M^J>"
  4709.     send "E^M"
  4710.     wait "^M^JMAIL>", "^M^J>"
  4711. return
  4712.  
  4713. ;********* パスワード変更コマンド  **********
  4714. ChangePass:
  4715.     writebuffer2 "^M^Jログインチェック:前回ログアウトの日付が記録と一致しません^M^J>"
  4716.     timeoutquestion "このまま巡回を続けますか?", 5
  4717.     if( no )
  4718. TryAgain:
  4719.         beginloop
  4720.             secretinput "新しいパスワードを入力して下さい", %%NewPass
  4721.             secretinput "再度、新しいパスワードを入力して下さい", %%NewPass1
  4722.             ##i = length(%%NewPass)
  4723.             if(( ##i >= 6) and ( %%NewPass == %%NewPass1 )) breakloop
  4724.             if( ##i == 0 )
  4725.                 message "それでは、後程パスワードを変更して下さい"
  4726.                 return
  4727.             endif
  4728.             message "パスワードが正しく入力されていません。再度入力して下さい"
  4729.         endloop
  4730.         send "GO MEMBER^M"
  4731.         wait "^M^J>"
  4732.         send "2^M"
  4733.         wait "^M^J:"
  4734.         if( @id == "ID1" ) #passset = %%NifPassword
  4735.         if( @id == "ID2" ) #passset = %%NifPass2
  4736.         send #passset+"^M"
  4737.         wait "^M^J:"
  4738.         send %%NewPass+"^M"
  4739.         loopswitch
  4740.             case "^M^J◆パスワードの入力形式"
  4741.                 wait "^M^J:"
  4742.                 timeoutquestion "パスワードがシステム仕様に合いません。このまま巡回しますか?", 5
  4743.                 if ( yes )
  4744.                     send "^M"
  4745.                     wait "^M^J>"
  4746.                     return
  4747.                 endif
  4748.                 goto TryAgain
  4749.             case "^M^J新パスワード"
  4750.                 wait "^M^J:"
  4751.                 send %%NewPass+"^M"
  4752.             case "^M^Jパスワードはもとのままです。"
  4753.                 wait "^M^J>"
  4754.                 breakloop
  4755.             case "^M^Jパスワードは変更されました。"
  4756.                 wait "^M^J>"
  4757.                 if( @id == "ID1" ) %%NifPassword = %%NewPass
  4758.                 if( @id == "ID2" ) %%NifPass2 = %%NewPass
  4759.                 breakloop
  4760.         endloop
  4761.     endif
  4762. return
  4763.  
  4764. ;********* リアルタイム会議コマンド  **********
  4765. RTC:
  4766.     if( @@rtc_no == 0 ) return
  4767.     ##i = 0
  4768.     beginloop
  4769.         menu "参加したいリアルタイム会議フォーラムを選択して下さい", \
  4770.                  "  前のページ", \
  4771.                 0, \
  4772.                 "  "+@rtc_frm[##i], \
  4773.                 "  "+@rtc_frm[##i+1], \
  4774.                  "  "+@rtc_frm[##i+2], \
  4775.                  "  "+@rtc_frm[##i+3], \
  4776.                  "  "+@rtc_frm[##i+4], \
  4777.                 0, \
  4778.                  "  次のページ", \
  4779.                 " 移動しない"
  4780.         switch result
  4781.             case -1
  4782.                 #flag = "FALSE"
  4783.                 breakloop
  4784.             case 0
  4785.                 #flag = "FALSE"
  4786.                 breakloop
  4787.             case 1
  4788.                 if( ##i < 5 ) ##i = 0
  4789.                 else          ##i = ##i - 5
  4790.             case 2
  4791.                 if( @rtc_frm[##i] != "" )
  4792.                     #forum = "GO "+@rtc_frm[##i]+"^M"
  4793.                     #flag = "TRUE"
  4794.                     breakloop
  4795.                 endif
  4796.             case 3
  4797.                 if( @rtc_frm[##i+1] != "" )
  4798.                     #forum = "GO "+@rtc_frm[##i+1]+"^M"
  4799.                     #flag = "TRUE"
  4800.                     breakloop
  4801.                 endif
  4802.             case 4
  4803.                 if( @rtc_frm[##i+2] != "" )
  4804.                     #forum = "GO "+@rtc_frm[##i+2]+"^M"
  4805.                     #flag = "TRUE"
  4806.                     breakloop
  4807.                 endif
  4808.             case 5
  4809.                 if( @rtc_frm[##i+3] != "" )
  4810.                     #forum = "GO "+@rtc_frm[##i+3]+"^M"
  4811.                     #flag = "TRUE"
  4812.                     breakloop
  4813.                 endif
  4814.             case 6
  4815.                 if( @rtc_frm[##i+4] != "" )
  4816.                     #forum = "GO "+@rtc_frm[##i+4]+"^M"
  4817.                     #flag = "TRUE"
  4818.                     breakloop
  4819.                 endif
  4820.             case 7
  4821.                 if( ##i+6 <= @@rtc_no ) ##i = ##i+5
  4822.             case 8
  4823.                 #flag = "FALSE"
  4824.                 breakloop
  4825.             case default
  4826.                 #flag = "FALSE"
  4827.                 breakloop
  4828.         endswitch
  4829.     endloop
  4830.     if( #flag = "TRUE" )
  4831.         send #forum
  4832.         wait "^M^JFORUM>", "^M^J>"
  4833. ;        runsync "chat.exe"
  4834.         @logout = "TRUE"
  4835.     endif
  4836. return
  4837.  
  4838. ;********* 分割PAD処理コマンド  **********
  4839. RunPad:
  4840.  
  4841.     if( @padname[0] == "END" ) return
  4842.     if( @gopad == "TRUE" ) return
  4843.     ##j = 0
  4844.     beginloop
  4845.         if( @padname[##j] == "END" ) breakloop
  4846.         if( @padflag[##j] == "FALSE" )
  4847.             @padfile = @padname[##j]
  4848.             chdir script
  4849.             openfile @padfile
  4850.             restoredir
  4851.             if( yes )
  4852.                 @gopad = "TRUE"
  4853.                 call PAD
  4854.             endif
  4855.         endif
  4856.         ##j = ##j+1
  4857.     endloop
  4858. return
  4859.  
  4860. ;********* パスワード変更コマンド  **********
  4861. ChgPass:
  4862.  
  4863.     readfile @padfile, #id
  4864.     readfile @padfile, #newpass
  4865.     if( #id == "*ID1" ) #oldpass = %%NifPassword
  4866.     if( #id == "*ID2" ) #oldpass = %%NifPass2
  4867.     send "GO PASSWORD^M"
  4868.     wait "^M^J:"
  4869.     send #oldpass+"^M"
  4870.     #flag = "OK"
  4871.     loopswitch
  4872.         case "◆"
  4873.             wait "^M^J:"
  4874.             timeoutmessage "パスワード変更に失敗しました", 3
  4875.             call ErrorLog "パスワード変更に失敗"
  4876.             #flag = "NG"
  4877.             send "^M"
  4878.         case "^M^J:"
  4879.             send #newpass+"^M"
  4880.         case "^M^J>"
  4881.             breakloop
  4882.     endloop
  4883.     if( #flag == "OK" )
  4884.         if( #id == "*ID1" )
  4885.             %%NifPassword = #newpass
  4886.             copyfile "variable.txt", %NifID+".VAR"
  4887.         endif
  4888.         if( #id == "*ID2" )
  4889.             %%NifPass2 = #newpass
  4890.             copyfile "variable.txt", %NifID2+".VAR"
  4891.         endif
  4892.     endif
  4893. return
  4894.  
  4895.