home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 March / VPR9703A.ISO / OLS / Win95 / HT315 / HT315.LZH / NIF.SCR < prev    next >
Text File  |  1996-07-10  |  32KB  |  1,243 lines

  1. ; Nifty-Serve ROAD1~ROAD5、telnet接続兼用スクリプト
  2. ; さらに、世界各地のCompuServeアクセスポイントからも、このスクリプトで
  3. ; NIFTYに接続できます!!!
  4. ; CompuServeアクセスポイント経由の場合は、ホストプロパティで「7bitで通信」
  5. ; をONにしてください。
  6. ;
  7. ; ユーザIDとパスワードは一番最初に接続した時に聞いてきます。
  8. ; その時入力したIDとパスワードは永久的変数に記憶されるので2回目以降
  9. ; はもう聞いてこなくなります。
  10. ; IDとパスワードを書き換えたい場合は、「スクリプト・変数一覧」で、
  11. ; %NifIDと%%NifPasswordを削除してください。
  12.  
  13. ; 自動巡回機能が含まれています。詳しくはJunkai:サブルーチンのコメントを参照
  14. ; してください。
  15. ;  以下の場合は自動巡回は実行されません。
  16. ;  - MYFORUM.TXTが見つからない場合
  17. ;  - 現在の日付が前回自動巡回した時と同じ場合
  18.  
  19. ; その他、詳しくは所々にあるコメントを参照してください。
  20.  
  21.     gethostname #HostName
  22.     if( #HostName == "" )
  23.         question "スクリプトのセットアップをしますか?"
  24.         if( yes )
  25.             goto ScriptSetup
  26.         endif
  27.     endif
  28.     afterhangup Atoshimatsu          ;     ハングアップ後にAtoshimatsu:に
  29.                                   ;     行くように指定します。
  30.     if( baudrate == 0 )
  31.         timeout 30
  32.     else
  33.         timeout 2              ;     うまくログインしない場合はここを大きくする
  34.     endif
  35.     switch
  36.         case "Enter Connection-ID  --->"
  37.             goto EnterConnectionID
  38.         case "HOST NAME?"
  39.             wait "*"
  40.             send "C NIF^M"
  41.         case timeout
  42.             timeout 1
  43.             send "."      ;     うまくログインしない場合はここをコメントにする
  44.             wait "."
  45.             if( timeout )
  46.                 send " P^M"
  47.             else
  48.                 send "00+"
  49.             endif
  50.     endswitch
  51.     endif
  52.     ##ThroughCIS = 0
  53. WaitConnectionID:
  54.     timeout 50
  55.     switch
  56.         case "Host Name:  "
  57.             send "NIFTY^M"
  58.             ##ThroughCIS = 1
  59.             goto WaitConnectionID
  60.  
  61.         case "^M^J*"
  62.             beginloop
  63.                 send "C NIF^M"
  64.                 switch
  65.                     case " Enter Connection-ID  --->"
  66.                         breakloop
  67.                     case "^M^J*"
  68.                         question "センターが接続要求を拒否しました。再試行しますか?"
  69.                         if( no ) hangup
  70.                     case timeout
  71.                         goto エラー
  72.                 endswitch
  73.             endloop
  74.         case " Enter Connection-ID  --->"
  75.             if( ##ThroughCIS != 0 )
  76.                 port parity=none data=8
  77.             endif
  78.             ; 続く
  79.         case timeout
  80.             goto エラー
  81.     endswitch
  82. EnterConnectionID:
  83.     send "SVC^M"
  84.     wait " Enter User-ID  --->"
  85.     if( timeout ) goto エラー
  86.     if( %NifID == "" )
  87.         input "ユーザIDを入力してください。", %NifID
  88.         if( cancel )
  89.             hangup
  90.         endif
  91.     endif
  92. EnterUserID:
  93.     send %NifID + "^M"
  94.     switch
  95.         case " Enter Password --->"
  96.             ; 次に進む
  97.         case " User-ID Error"
  98.             #mes = %NifID + "はエラーです。正しいユーザIDを入力してください。"
  99.             input #mes, %NifID
  100.             if( cancel ) hangup
  101.             goto EnterUserID
  102.         case timeout
  103.             goto エラー
  104.     endswitch
  105.     #mes = "パスワードを入力してください。"
  106. EnterPassword:
  107.     if( %%NifPassword == "" )
  108.         secretinput #mes, %%NifPassword
  109.         if( cancel )
  110.             hangup
  111.         endif
  112.     endif
  113.     #temp = %%NifPassword
  114.     if( #temp == "毎回入力する" )
  115.         secretinput #mes, #temp
  116.         if( cancel )
  117.             hangup
  118.         endif
  119.     endif
  120.     send #temp + "^M"
  121.     switch
  122.         case "^M^J前回"
  123.             ; 次に進む
  124.         case " Password ERROR"
  125.             #mes = #temp + "はエラーです。正しいパスワードを入力してください。"
  126.             if( %%NifPassword != "毎回入力する" )
  127.                 %%NifPassword = ""
  128.             endif
  129.             goto EnterPassword
  130.         case timeout
  131.             goto エラー
  132.     endswitch
  133.  
  134.     timeout 0
  135.  
  136.     getline #lastlog
  137.  
  138. ;************* 未読メールを自動で読みます。
  139. ;************* 必要ない方はコメントにしてください。
  140. ;    switch
  141. ;        case "未読分"
  142. ;            #mailread = "yes"
  143. ;            wait ">"
  144. ;        case ">"
  145. ;            ;
  146. ;    endswitch
  147.  
  148.     keyboard on
  149.  
  150. ;************* NIFTY用のキー割り当てを設定します。
  151. ;************* 必要ない方はコメントにしてください。
  152.     call SetNifKeyAssign
  153.  
  154. ;******************* 自動するかどうかを聞いてきます。
  155. ;******************* うっとおしい方はコメントにしてください。
  156. ;******************* 単に#junkau = "yes"にすると巡回します。
  157. ;    chdir upload
  158. ;    if( existfile( "MYFORUM.TXT" ) )
  159. ;        restoredir
  160. ;        getdate #date
  161. ;        if( #date != %JunkaiDate )
  162. ;            %JunkaiDate = #date
  163. ;            question "自動巡回をしますか?"
  164. ;            if( yes ) #junkai = "yes"
  165. ;        endif
  166. ;    endif
  167. ;    restoredir
  168.  
  169. ;************* 前回ログイン日付・時間をチェックします。
  170. ;************* もし日付・時間が違っていた場合は他人がIDを
  171. ;************* 盗用した可能性も有ります。
  172.     call CheckAccessDate #lastlog
  173.  
  174.     #lastlog = ""
  175.  
  176.     if( #mailread == "yes" ) call AutoMailRead
  177.     if( #junkai == "yes" ) call Junkai
  178.  
  179. ;******************* NIFTY用のログの作成を開始します。
  180.     call BeginLog
  181.  
  182. WaitLogOff:
  183.     timeout 0
  184.     loopswitch
  185.         case "^M^J ご利用誠にありがとうございました。^M^J"
  186.             breakloop
  187.         case "のユーザーからのメッセージです-^M^J"
  188.             readbuffer 1, #line
  189.             timeout 3
  190.             wait "^M^J"
  191.             if( timeout ) goto WaitLogOff
  192.             millitimeout 500
  193.             getchar #ch
  194.             if( not timeout ) goto WaitLogOff
  195.             play "!"
  196.             timeout 0
  197.             ##i = 2
  198.             beginloop
  199.                 readbuffer ##i, #line
  200.                 if( search( #line, "メッセージです" ) != "" )
  201.                     #id = part( search( #line, "-" ), 2, 8 )
  202.                     input #id + "に送り返すメッセージ", #message
  203.                     if( cancel ) breakloop;
  204.                     if( #message == "" ) breakloop;
  205.                     send "SEND " + #id + " " + #message + "^M"
  206.                     breakloop
  207.                 endif
  208.                 ##i = ##i + 1
  209.                 if( ##i > 10 )
  210.                     breakloop
  211.                 endif
  212.             endloop
  213.     endloop
  214.  
  215.     ##c = 0
  216.     timeout 10
  217.     loopswitch
  218.         case "^M^J"
  219.             ##c = ##c + 1
  220.             if( ##c >= 10 ) goto WaitLogOff
  221.         case "--->"
  222.             goto WaitLogOff
  223.         case postmilliidle(500) "+", postmilliidle(500) "*"
  224.             hangup
  225.         case postidle(1) ">", postidle(1) "CCS(N)>", postidle(1) "CCS(P)>"
  226.             goto WaitLogOff
  227.         case ""
  228.             hangup
  229.         case timeout
  230.             goto WaitLogOff
  231.     endloop
  232.     hangup
  233.  
  234. エラー:
  235.     afterhangup ErrorHangup
  236.     hangup
  237.  
  238. ErrorHangup:
  239.     message "エラーが発生したので電話を切りました。"
  240.     return
  241.  
  242. ;************** ログを作成するサブルーチンです。
  243. ;************** 好きなように直して使ってください。
  244. BeginLog:
  245.     if( %NifLogStyle == "" )
  246.         menu "ログの作成方法を指定してください。", \
  247.              "&1 NIFTY.LOGというファイルに作成する。500Kバイトごとにバックアップする。", \
  248.              "&2 NIFmmdd.LOGというファイルに作成する。mmは月、ddは日", \
  249.              "&3 NIFyymm.LOGというファイルに作成する。yyは年、mmは月"
  250.         if( result == -1 or result == 0 )
  251.             %NifLogStyle = 0
  252.         else
  253.             %NifLogStyle = result
  254.         endif
  255.     endif
  256.     if( value(%NifLogStyle) == 1 )
  257.         log "NIFTY.LOG", 500    ;  サイズ制限500KBで作成します。
  258.     elseif( value(%NifLogStyle) == 2 )
  259.         getdate #date
  260.         log "NIF" + part( #date, 2, 4 ) + ".LOG"
  261.     else
  262.         getdate #date
  263.         log "NIF" + part( #date, 0, 4 ) + ".LOG"
  264.     endif
  265. return
  266.  
  267. ;***************************************
  268. ;****    パスワード変更処理      **********
  269. ;***************************************
  270. ChangePassword:
  271.     if(%%NifPassword == "毎回入力する")
  272.         secretinput "現在のパスワードを入力して下さい。", %%NifPasswordNow
  273.         if(cancel)
  274.             %%NifPasswordNow = ""
  275.             message "中止します。"
  276.             return
  277.         endif
  278.     else
  279.         %%NifPasswordNow = %%NifPassword
  280.     endif
  281.     message "新しいパスワードを入力して下さい。(合計6~8文字)^M^Jアルファベット (最低1文字以上) と数字か記号 (最低1文字以上)^M^JただしIDと同一の文字列は不可。"
  282.     input "使用可能文字:^M^J A-Z a-z 0-9^M^J ! ^" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~", %%NifPasswordNew
  283.     if(cancel)
  284.         %%NifPasswordNow = ""
  285.         %%NifPasswordNew = ""
  286.         message "中止します。"
  287.         return
  288.     else
  289.         question "新しいパスワードに変更してよろしいですか?"
  290.         if(no)
  291.             %%NifPasswordNow = ""
  292.             %%NifPasswordNew = ""
  293.             message "中止します。"
  294.             return
  295.         endif
  296.     endif
  297.  
  298.     readbuffer 0,#line
  299.     if( #line != "現パスワードの入力" )
  300.         readbuffer 1,#line
  301.         if( #line != "現パスワードの入力" )
  302.             send "GO PASSWORD^M"
  303.             wait "^M^J:"
  304.         endif
  305.     endif
  306.     send %%NifPasswordNow + "^M"
  307.     loopswitch
  308.         case "^M^J◆パスワードが間違っています◆","^M^J◆パスワードの入力形式が誤っています◆"
  309.             question "現在のパスワードが間違っています。^M^Jもう一度入力しますか?"
  310.             if(yes)
  311.                 input "現在のパスワードを入力して下さい。", %%NifPasswordNow
  312.                 if(cancel)
  313.                     %%NifPasswordNow = ""
  314.                     %%NifPasswordNew = ""
  315.                     message "中止します。"
  316.                     send "^M"
  317.                     return
  318.                 endif
  319.             else
  320.                 %%NifPasswordNow = ""
  321.                 %%NifPasswordNew = ""
  322.                 message "中止します。"
  323.                 send "^M"
  324.                 return
  325.             endif
  326.             send %%NifPasswordNow + "^M"
  327.             loopagain
  328.         case "^M^J新パスワードの入力^M^J:"
  329.             breakloop
  330.     endloop
  331.     send %%NifPasswordNew + "^M"
  332.     loopswitch
  333.         case "^M^J◆パスワードの入力形式が誤っています◆"
  334.             question "新しいパスワードの形式が間違っています。もう一度入力しますか?"
  335.             if(yes)
  336.                 input "新しいパスワードを入力して下さい。", %%NifPasswordNew
  337.                 if(cancel)
  338.                     %%NifPasswordNow = ""
  339.                     %%NifPasswordNew = ""
  340.                     message "中止します。"
  341.                     send "^M"
  342.                     return
  343.                 endif
  344.             else
  345.                 %%NifPasswordNow = ""
  346.                 %%NifPasswordNew = ""
  347.                 message "中止します。"
  348.                 send "^M"
  349.                 return
  350.             endif
  351.             send %%NifPasswordNew + "^M"
  352.         case "^M^J新パスワードの再入力^M^J:"
  353.             send %%NifPasswordNew + "^M"
  354.         case "^M^Jパスワードは変更されました。"
  355.             message "パスワードは正常に変更されました。新しいパスワードは「" + %%NifPasswordNew + "」です。忘れないでください。"
  356.             breakloop
  357.     endloop
  358.     if(%%NifPassword != "")
  359.         question "変更したパスワードを秀Termに記憶させますか?^M^J記憶させない場合はアクセスの際に入力を求めます。"
  360.         if(yes)
  361.             %%NifPassword = %%NifPasswordNew
  362.         else
  363.             %%NifPassword = "毎回入力する"
  364.         endif
  365.     endif
  366.     %%NifPasswordNow = ""
  367.     %%NifPasswordNew = ""
  368. return
  369.  
  370. AutoMailRead2:
  371.     call AutoMailRead
  372.     call AutoMailDelete
  373.     send "BYE^M"
  374.     return
  375.  
  376. ;***************************************
  377. ;****    未読メール処理          **********
  378. ;***************************************
  379. AutoMailRead:
  380.     readbuffer 0,#line
  381.     if( #line != "MAIL>" )
  382.         readbuffer 1,#line
  383.         if( #line != "電子メール(1:受信 2:送信 3:送信簿 0:その他 E:終了)" )
  384.             send "MAIL^M"
  385.             wait "^M^J>", "^M^JMAIL>"
  386.         endif
  387.     endif
  388.     send "READ NEW^M"
  389.     wait "^M^J"
  390.  
  391. ;******************** メール専用のログを作成します。
  392.     log "NIFMAIL.LOG", 500
  393.  
  394.     loopswitch
  395.         case postmilliidle(200) "続き (改行で表示 E:終了)^M^J>" \
  396.            , postmilliidle(200) "続き (改行で次頁 S:次文書 E:終了)^M^J>"
  397.             send "^M"
  398.         case postmilliidle(200) "受信後 (1:削除  2:保存  3:返信  4:返信+削除  5:転送  6:転送+削除  E:終了)" \
  399.            + "^M^J:", \
  400.              postmilliidle(200) "受信後 (1:削除  2:保存  *:返信  *:返信+削除  5:転送  6:転送+削除  E:終了)" \
  401.            + "^M^J:"
  402.             send "2^M"
  403.         case postmilliidle(200) "電子メール(1:受信 2:送信 3:送信簿 0:その他 E:終了)" \
  404.            + "^M^J>"
  405.             breakloop
  406.         case postmilliidle(200) "^M^Jaction:", postidle(2) "action:"
  407.             send "sav^M"
  408.         case postmilliidle(500) "^M^JMAIL>", postidle(2) "MAIL>"
  409.             breakloop
  410.     endloop
  411.  
  412. ;***************** NIFのログに戻ります。
  413.     call BeginLog
  414. return
  415.  
  416. ;***************************************
  417. ;****    メール削除処理          **********
  418. ;***************************************
  419. AutoMailDelete:
  420.     readbuffer 0,#line
  421.     if( #line != "MAIL>" )
  422.         readbuffer 1,#line
  423.         if( #line != "電子メール(1:受信 2:送信 3:送信簿 0:その他 E:終了)" )
  424.             send "MAIL^M"
  425.             wait "^M^J>", "^M^JMAIL>"
  426.         endif
  427.     endif
  428.     send "DEL 1-^M"
  429.     loopswitch
  430.         case "^M^J:"
  431.             readbuffer 2,#line
  432.             if( part( #line, 0, 1 ) == "*" )
  433.                 send "1^M"
  434.             else
  435.                 send "2^M"
  436.             endif
  437.         case postmilliidle(500) ">", postmilliidle(500) "MAIL>"
  438.             breakloop
  439.     endloop
  440. return
  441.  
  442. ;**************************
  443. ;*Download Name の自動拾得*
  444. ;**************************
  445. ;  by 青い雷殿    (のを斉藤秀夫が自分風にしました)
  446. AutoDNSelect:
  447.     ##i = 0
  448.     #name = ""
  449.     while( #name == "" )
  450.         ##i = ##i + 1
  451.         if( ##i > 500 )
  452.             message "ダウンロードデータ名が見つかりませんでした"
  453.             return
  454.         endif
  455.         readbuffer ##i,#buf
  456.         #name = search( #buf,"データ名:" )
  457.     endwhile
  458.     #name = part( #name, 10, 255 )        ; "データ名:"を取り除く
  459.     if( search( drop( #name, " " ), "." ) == "" )
  460.         ; ".LZH"と、その前に空白が入っている場合の処理
  461.         #name = drop( #name, " " ) + drop( search( #name, "." ), " " )
  462.     else
  463.         #name = drop( #name, " " )            ; ファイル名の後ろを取り除く
  464.     endif
  465.     setchat #name
  466. return
  467.  
  468. ; ファイル名入力(アップロード用)
  469. SendFileName:
  470.     chdir upload
  471.     inputfilename "ファイル名", #name
  472.     restoredir
  473.     if( enter )
  474.         send #name + "^M"
  475.     endif
  476. return
  477.  
  478. ;************ チャットモードにします
  479. ChatMode:
  480.     keyassign f1, "F1", string, ""
  481.     keyassign f2, "F2", string, ""
  482.     keyassign f3, "F3", string, ""
  483.     keyassign f4, "F4", string, ""
  484.     keyassign f5, "F5", string, ""
  485.     keyassign f6, "F6", string, ""
  486.     keyassign f7, "F7", string, ""
  487.     keyassign f8, "F8", string, ""
  488.     keyassign f9, "F9", string, ""
  489.     keyassign f10, "F10", string, ""
  490.     keyassign f11, "F11", string, ""
  491.     keyassign f12, "F12", string, ""
  492.     call "CSC.SCR"
  493.     call SetNifKeyAssign
  494. return
  495.  
  496. ;**************** ファイルに入っているIDを全部送信します *******
  497. ; by 秀まるお
  498. ;  第1パラメタでメールのファイル名を指定でき、
  499. ;  第2パラメタでIDの入っているファイル名を指定できます。
  500. ;  ファイルはアップロード用のディレクトリにないといけません。
  501. ;  秀Termの登録ユーザの方にメールを送るために作りました。
  502.  
  503. SendID:
  504.     if( #1 == "" )
  505.         input "メールのファイル名を指定してください。", #1
  506.         if( cancel ) return
  507.     endif
  508.     if( #2 == "" )
  509.         input "ユーザIDの入っているファイル名を指定してください。", #2
  510.         if( cancel ) return
  511.     endif
  512.     input "題名を指定してください。", #title
  513.     if( cancel ) return
  514.     readbuffer 0, #line
  515.     if( #line == "FORUM>" )
  516.         #smail = "yes"
  517.     endif
  518.     if( not #smail )
  519.         send "MAIL^M"
  520.         timeout 20
  521.         switch
  522.             case "電子メール(1:受信 2:送信 3:送信簿 0:その他 E:終了)^M^J>"
  523.                 ;
  524.             case timeout, "番号"
  525.                 message "電子メールに行けませんでした。"
  526.                 return
  527.         endswitch
  528.         timeout 0
  529.     endif
  530.     chdir upload
  531.     openfile #2
  532.     restoredir
  533.     if( no )
  534.         message "ユーザIDファイルのオープンに失敗しました。"
  535.         return
  536.     endif
  537.     ##count = 0
  538.     call GetID #2
  539.     if( #return == "" )
  540.         message #2 + "にはユーザIDがありません。"
  541.         closefile #2
  542.         return
  543.     endif
  544. SendID_ReSend:
  545.     if( #smail )
  546.         send "SMAIL^M"
  547.     else
  548.         send "2^M"
  549.     endif
  550.     wait "本文(300 行まで 終了は行頭で/E)^M^J"
  551.     ##cID = 1
  552.     ##count = ##count + 1
  553.     send "TO:" + #return + "^M"
  554.     while( ##cID < 10 )
  555.         call GetID #2
  556.         if( #return == "" ) breakloop;
  557.         ##count = ##count + 1
  558.         send "TO:" + #return + "^M"
  559.         ##cID = ##cID + 1;
  560.     endwhile
  561.     upload #1, none
  562.     if( no )
  563.         closefile #2
  564.         message "中止します"
  565.         return
  566.     endif
  567.     loopswitch
  568.         case "修正 (1:修正する 2:しない)^M^J:"
  569.             send "2^M"
  570.         case "題名 (漢字で20文字まで)^M^J:"
  571.             send #title + "^M"
  572.             wait "^M^J:"                     ; 確認
  573.             send "1^M"
  574.         case "宛先 (IDか同報グループ名 改行で終了)^M^J:" \
  575.            , "宛先 (IDか同報グループ名又は FAX番号 改行で終了)^M^J:"
  576.             breakloop
  577.         case "-送信完了-^M^J"
  578. ; 高速化
  579. ;            if( #smail )
  580. ;                wait "FORUM>"
  581. ;            else
  582. ;                wait "電子メール(1:受信 2:送信 3:送信簿 0:その他 E:終了)^M^J>"
  583. ;            endif
  584.             call GetID #2
  585.             if( #return != "" )
  586.                 goto SendID_ReSend
  587.             else
  588.                 closefile #2
  589.                 message ##count + "人にメールを送りました。"
  590.                 return;
  591.             endif
  592.     endloop
  593.     beginloop
  594.         ##count = ##count + 1
  595.         send #return + "^M"
  596.         wait "^M^J:"                 ; 確認
  597.         send "1^M"
  598.         switch
  599.             case "宛先 (IDか同報グループ名 改行で終了)^M^J:" \
  600.                , "宛先 (IDか同報グループ名又は FAX番号 改行で終了)^M^J:"
  601.                 call GetID #2
  602.                 if( #return == "" )
  603.                     send "^M"
  604.                     wait "送信 (1:送信する 2:しない)^M^J:"
  605.                     send "1^M"
  606.                     breakloop
  607.                 endif
  608.             case "送信 (1:送信する 2:しない)^M^J:"
  609.                 send "1^M"
  610.                 if( #smail )
  611.                     wait "FORUM>"
  612.                 else
  613.                     wait "電子メール(1:受信 2:送信 3:送信簿 0:その他 E:終了)^M^J>"
  614.                 endif
  615.                 call GetID #2
  616.                 if( #return != "" )
  617.                     goto SendID_ReSend
  618.                 else
  619.                     breakloop
  620.                 endif
  621.             case "-送信完了-"
  622.                 if( #smail )
  623.                     wait "FORUM>"
  624.                 else
  625.                     wait "電子メール(1:受信 2:送信 3:送信簿 0:その他 E:終了)^M^J>"
  626.                 endif
  627.                 call GetID #2
  628.                 if( #return != "" )
  629.                     goto SendID_ReSend
  630.                 else
  631.                     breakloop
  632.                 endif
  633.         endswitch
  634.     endloop
  635.     closefile #2
  636.     message ##count + "人にメールを送りました。"
  637. return
  638.  
  639. ; ファイルからユーザIDを取り出す
  640. ;  call GetID ファイル名 で呼び出すこと。
  641. ;  ファイル名で指定するファイルはあらかじめopenfileされてないといけない
  642. ;
  643. GetID:
  644.     beginloop
  645.         readfile #1, #line
  646.         if( no ) return ""                ; ファイルの最後まで行ったら""を返す
  647.         if( #line == "" ) goto GetID
  648.         ##len = length(#line) - 8
  649.         if( search( #line, "PCV>" ) != "" )
  650.             return part( search( #line, "PCV>" ), 4, 8 );
  651.         endif
  652.         if( search( #line, "INET:" ) != "" )
  653.             #line = search( #line, "INET:" );
  654.             ##i = 5
  655.             beginloop
  656.                 #a = part( #line, ##i, 1 )
  657.                 if( #a <= " " or #a >= "^080" or #a == "," ) breakloop
  658.                 ##i = ##i + 1
  659.             endloop
  660.             return part( #line, 0, ##i );
  661.         endif
  662.         ##i = 0
  663.         while( ##i <= ##len )
  664.             #id = part( #line, ##i, 1 )
  665.             if( #id < "A" or #id > "Z" ) goto GetIDContinue
  666.             #id = part( #line, ##i + 1, 1 )
  667.             if( #id < "A" or #id > "Z" ) goto GetIDContinue
  668.             #id = part( #line, ##i + 2, 1 )
  669.             if( #id < "A" or #id > "Z" ) goto GetIDContinue
  670.             #id = part( #line, ##i + 3, 1 )
  671.             if( #id < "0" or #id > "9" ) goto GetIDContinue
  672.             #id = part( #line, ##i + 4, 1 )
  673.             if( #id < "0" or #id > "9" ) goto GetIDContinue
  674.             #id = part( #line, ##i + 5, 1 )
  675.             if( #id < "0" or #id > "9" ) goto GetIDContinue
  676.             #id = part( #line, ##i + 6, 1 )
  677.             if( #id < "0" or #id > "9" ) goto GetIDContinue
  678.             #id = part( #line, ##i + 7, 1 )
  679.             if( #id < "0" or #id > "9" ) goto GetIDContinue
  680.             return part( #line, ##i, 8 )
  681.         GetIDContinue:
  682.             ##i = ##i + 1
  683.         endwhile
  684.     endloop
  685. return
  686.  
  687. CheckAccessDate:
  688.     if(%%LastLogDate == "")
  689.         writebuffer2 "^M^JNIF.SCR よりのお知らせ:前回アクセスの日付情報は登録されていません。^M^J"
  690.     else
  691.         #a = part(#1, 8, 255)
  692.         ##len = length(#a) - 1
  693.         if(part(#a, ##len, 1) == "^M")
  694.             #a = part(#a, 0, ##len)
  695.         endif
  696.         if(#a == %%LastLogDate)
  697.             writebuffer2 "^M^JNIF.SCR よりのお知らせ:前回アクセスの日付情報チェックはOKでした。^M^J"
  698.         else
  699.             writebuffer2 "^M^JNIF.SCR よりのお知らせ:前回LOG OUT時間が記録内容と違っています。このスクリプトを使わずにアクセスした覚えが無い場合,パスワード漏出など最悪の事態を想定して,パスワードを変更することをお薦めします。^M^J"
  700.         endif
  701.     endif
  702.     %%LastLogDate = ""
  703. return
  704.  
  705. KeepAccessDate:
  706.     beginloop
  707.         readbuffer ##i, #a
  708.         if(search(#a, "LOG OUT --- ") != "")
  709.             breakloop
  710.         endif
  711.         ##i = ##i + 1
  712.         if(##i > 20)
  713.             #a = ""
  714.             breakloop
  715.         endif
  716.     endloop
  717.     if(#a != "")
  718.         %%LastLogDate = part(#a, 23, 255)
  719.     endif
  720. return
  721.  
  722. ;************ 各種キー割当て処理
  723. SetNifKeyAssign:
  724.     keyassign f1, "未読メール", script, AutoMailRead
  725.     keyassign f2, "巡回", script, Junkai
  726.     keyassign f3, "メール削除", script, AutoMailDelete
  727.     keyassign f4, "ファイル名探し", script, AutoDNSelect
  728.     keyassign f5, "ファイル名入力", script, SendFileName
  729.     keyassign f6, "自動発言", script, Forum_Up
  730.     keyassign f7, "ID送信(作者用)", script, SendID
  731.     keyassign f8, "チャット", script, ChatMode
  732.     keyassign f9, "パスワード変更", script, ChangePassword
  733.     keyassign f10, "セットアップ", script, ScriptSetup2
  734.     keyassign f11, "メール読んで落ち", script, AutoMailRead2
  735. return
  736.  
  737. ;**************** 後始末処理です *******************
  738. Atoshimatsu:
  739.     call KeepAccessDate
  740.     savebuffer
  741. ;    #hour = part( #1, 0, 2 )
  742. ;    #minute = part( #1, 2, 2 )
  743. ;    #second = part( #1, 4, 2 )
  744. ;    #mes = "通話時間は"
  745. ;    if( #hour != "00" )
  746. ;        #mes = #mes + #hour + "時間"
  747. ;    endif
  748.     ; #mes = #mes + #minute + "分" + #second + "秒でした"
  749.     ; message #mes
  750.     ; closehideterm       ・・・ 秀Termを自動終了させる場合はここにclosehideterm
  751.                         ;  コマンドを入れましょう。
  752.     return
  753.  
  754. ;***************************************************************************
  755. ; フォーラムの会議室を自動で読むスクリプトのサブルーチンです。
  756. ; とある方からの要望でつくりました。
  757. ;
  758. ; 機能は、
  759. ;      - 読みたい会議室の名前を複数指定できる
  760. ;      - 各フォーラムごと、または各会議室ごとに別々のログが取れる
  761. ;      - フォーラム内の特定の会議室だけを指定できる
  762. ;      - それらの指定はアップロード用の所の"MYFORUM.TXT"に入れておけばよい
  763. ;
  764. ;  "MYFORUM.TXT"の作り方
  765. ;      - MYFORUM.TXTは、アップロード用のディレクトリに作成してください。
  766. ;        メール編集で編集できます。
  767. ;      - 1行に、「フォーラム名」、「ログのファイル名」、「会議室番号」を
  768. ;        指定してください。指定の方法は、以下のとうりです。
  769. ;
  770. ;             フォーラム名, ログのファイル名, 番号, 番号,・・・
  771. ;
  772. ;          ログのファイル名または(会議室の)番号は省略できます。
  773. ;          ログのファイル名を省略すると、ログは各会議室ごとに、フォーラム名
  774. ;        と会議室番号をくっつけた名前で作成されます。拡張子は".LOG"になりま
  775. ;        す。ファイル名が8+3文字を越えると適当に縮められます。
  776. ;          番号を一つも指定しないでおくと、全ての会議室を読みます。
  777. ;          例:
  778. ;             FPSY
  779. ;             FFMPRO , FFMPRO.LOG
  780. ;             FNEC98 , FNEC98.LOG , 1,2,3,4,5
  781. ;             FIBMPRO,             , 1,3,4,5
  782. ;
  783. ;          同じフォーラムの各会議室ごとにログの名前を指定したい場合は、次の
  784. ;        ように指定してください。
  785. ;
  786. ;            FNEC98, FNECDL.LOG, 1
  787. ;            FNEC98, FNEC.LOG, 9
  788. ;            FNEC98, FNECWS.LOG, 12
  789. ;
  790. ;          フォーラムのリストの最後にBYEを入れておくと最後に電話を切ります。
  791. ;            例:
  792. ;              FNEC98
  793. ;              FC
  794. ;              BYE
  795. ;
  796. Junkai:
  797.     #file = "MYFORUM.TXT"
  798.     chdir upload
  799.     openfile #file
  800.     restoredir
  801.     if( no )
  802.         message "MYFORUM.TXTが見つかりません。"
  803.         return
  804.     endif
  805.     beginloop
  806. JunkaiLoop:
  807.         readfile #file, #line
  808.         if( no ) breakloop
  809.     ; #lineの中の空白を除去する
  810.         ##i = 0
  811.         beginloop
  812.             #p = part( #line, ##i, 1 )
  813.             if( #p == "" ) breakloop
  814.             if( #p <= " " )
  815.                 #line = part( #line, 0, ##i ) + part( #line, ##i + 1, 255 )
  816.             else
  817.                 ##i = ##i + 1
  818.             endif
  819.         endloop
  820.         ##i = 0
  821.         beginloop
  822.             #p = part( #line, ##i, 1 )
  823.             if( #p == "" or #p == "," ) breakloop
  824.             ##i = ##i + 1
  825.         endloop
  826.         #forum = part( #line, 0, ##i )
  827.         if( #forum == "" ) goto JunkaiLoop
  828.         if( #forum == "FORUM_UP" )
  829.             chdir upload
  830.             #exist = existfile( "forum_up.txt" )
  831.             restoredir
  832.             if( #exist )
  833.                 call Forum_Up
  834.             endif
  835.             goto JunkaiLoop
  836.         endif
  837.         if( #forum == "BYE" )
  838.             send "BYE^M"
  839.             goto WaitLogOff
  840.         endif
  841.         #line = part( #line, ##i, 255 )
  842.         if( part( #line, 0, 1 ) == "," )
  843.             #line = part( #line, 1, 255 )
  844.         endif
  845.         if( #line == "" or part( #line, 0, 1 ) == "," )
  846.             #log = ""
  847.             #line = part( #line, 1, 255 )
  848.         else
  849.             ##i = 0
  850.             beginloop
  851.                 #p = part( #line, ##i, 1 )
  852.                 if( #p == "" or #p == "," ) breakloop
  853.                 ##i = ##i + 1
  854.             endloop
  855.             #log = part( #line, 0, ##i )
  856.             #line = part( #line, ##i, 255 )
  857.         endif
  858.         #bplus = "no"
  859.         if( toupper(#log) == "BPLUS" )
  860.             #log = ""
  861.             #bplus = "yes"
  862.         endif
  863.         if( part( #line, 0, 1 ) == "," )
  864.             #line = part( #line, 1, 255 )
  865.         endif
  866.         #meslist = ""
  867.         #line = toupper( #line )
  868.         while( #line != "" )
  869.             if( part( #line, 0, 5 ) == "BPLUS" )
  870.                 #bplus = "yes"
  871.                 breakloop
  872.             endif
  873.             beginloop
  874.                 #p = part( #line, 0, 1 )
  875.                 if( #p < "0" or #p > "9" ) breakloop
  876.                 #meslist = #meslist + #p
  877.                 #line = part( #line, 1, 255 )
  878.             endloop
  879.             if( #line != "" )
  880.                 #meslist = #meslist + ","
  881.                 if( part( #line, 0, 1 ) != "," )
  882.                     message "MYFORUM.TXTの会議室番号がおかしいです。^M" \
  883.                           + "フォーラム名:" + #forum
  884.                     closefile #file
  885.                     return
  886.                 endif
  887.                 #line = part( #line, 1, 255 )
  888.             endif
  889.         endwhile
  890.         if( #forum != #prevforum )
  891.             call GoForumMes #forum
  892.             #yetlist = #return
  893.         endif
  894.         if( #meslist == "" )
  895.             #meslist = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30"
  896.         endif
  897.         call Intersect #yetlist, #meslist
  898.         #list = #return
  899.         if( #bplus == "yes" )
  900.             call DownloadMes #list, #log, #forum
  901.         else
  902.             call ReadMes #list, #log, #forum
  903.         endif
  904.         #prevforum = #forum
  905.     endloop
  906.     closefile #file
  907.     call BeginLog
  908. return
  909.  
  910. GoForumMes:
  911.     timeout 60
  912.     send "GO "+#1+"^M"
  913.     loopswitch
  914.         case "続き (改行で表示 E:終了)^M^J>", \
  915.              "more>"
  916.             send "^M"
  917.         case "^M^JFORUM>", postidle(1) "^M^J>"
  918.             breakloop
  919.         case "◆番号又はコマンドを入力して下さい◆", timeout
  920.             message #1 + "に行けませんでした"
  921.             return
  922.     endloop
  923.     send "MES^M"
  924.     wait "^M^J番号 発言 (未読)  最新  会議室名^M^J"
  925.     #list = ""
  926.     beginloop
  927.         getchar #a
  928.         if( #a == ">" )
  929.             breakloop
  930.         elseif( #a == "m" )    ; "more>"
  931.             wait ">"
  932.             send "^M";
  933.             wait "^M^J"
  934.             loopagain;
  935.         endif
  936.         getline #line
  937.         #line = #a + #line
  938.         if( part( #line, 0, 4 ) == "番号" )
  939.             wait ">"
  940.             send "^M"
  941.             wait "^M^J"
  942.             loopagain;
  943.         endif
  944.         if( part( #line, 13, 3 ) != "  0" )
  945.             if( part( #line, 0, 1 ) == " " )
  946.                 #list = #list + part( #line, 1, 1 ) + ","
  947.             else
  948.                 #list = #list + part( #line, 0, 2 ) + ","
  949.             endif
  950.         endif
  951.     endloop
  952. return #list
  953.  
  954. ; #1と#2の共通部分を計算します
  955. Intersect:
  956.     #1 = "," + #1 + ","
  957.     while( #2 != "" )
  958.         #num = drop( #2, "," )
  959.         #2 = part( search( #2, "," ), 1, 255 )
  960.         if( search( #1, "," + #num + "," ) != "" )
  961.             #result = #result + #num + ","
  962.         endif
  963.     endwhile
  964. return #result
  965.  
  966. ; 指定されたフォーラムの特定の会議室の内容を読む。
  967. ; パラメタ1: 会議室のリスト
  968. ; パラメタ2: ログの名前(例:FFMPRO.LOG)
  969. ;                指定なしの場合はログは取られない。
  970. ; パラメタ3: 会議室の番号をコンマで区切る(例:"1,2,3")
  971. ;                パラメタ3が指定されない場合は全ての会議室となる
  972. ;
  973. ;    例:  ReadMes "1,2,3", "FFMPRO.LOG", "FFMPRO"
  974. ;          ReadMes "1,2,3,4", "", "FIBMPRO"
  975. ;          ReadMes "1,10"
  976. ;          ReadMes "1,10", "FFMPRO.LOG"
  977. ;
  978. ReadMes:
  979.     if( #1 == "" ) return
  980.     #3 = part( #3, 0, 6 )
  981.     readbuffer 0, #line0
  982.     readbuffer 1, #line1
  983.     if( #line0 == "CCS(N)>" \
  984.      or #line0 == "CCS(P)>" \
  985.      or ( #line0 == ">" \
  986.       and #line1 == "電子会議 (1:発言 改行のみ: 読む) 通常モード" ) )
  987.         send "MES^M"
  988.         wait postidle(1) ">"
  989.     endif
  990.     if( #2 != "" ) log #2, 1024
  991.     while( #1 != "" )
  992.         #room = drop( #1, "," )
  993.         #1 = part( search( #1, "," ), 1, 255 )
  994.         if( #2 == "" )
  995.             log #3 + #room + ".LOG", 1024
  996.         endif
  997.         send "MRE ROOM:" + #room + "^M"
  998.         wait postidle(1) "^M^J>"
  999.     endwhile
  1000.     log
  1001. return
  1002.  
  1003. DownloadMes:
  1004.     if( #1 == "" ) return
  1005.     #3 = part( #3, 0, 6 )
  1006.     openreg "CURRENTUSER", "Software\Hidemaruo\Hideterm95\Config"
  1007.     getreg "LogPath", #logpath
  1008.     if( part( #logpath, length(#logpath) - 1, 1 ) != "\" )
  1009.         #logpath = #logpath + "\"
  1010.     endif
  1011.     port autobplus = off
  1012.     while( #1 != "" )
  1013.         #room = drop( #1, "," )
  1014.         #1 = part( search( #1, "," ), 1, 255 )
  1015.         send "MES " + #room + "^M"
  1016.         wait "^M^J>", "^M^JCCS(N)>", "^M^JCCS(P)>"
  1017.         send "DOW NEW PROT:BPL^M"
  1018.         switch
  1019.             case "^M^J:"
  1020.                 ; 続き
  1021.             case "^M^JCCS(N)>", "^M^JCCS(P)>", "^M^J>"
  1022.                 ; ブレーク信号が送信された
  1023.                 return
  1024.         endswitch
  1025.         if( #2 == "" )
  1026.             #filename = #logpath + #3 + #room + ".LOG"
  1027.         else
  1028.             #filename = #logpath + #2
  1029.         endif
  1030.         send #filename + "^M"
  1031.         wait "^E"
  1032.         download #filename, bplus, append
  1033.         wait "^M^J>", "^M^JCCS(N)>", "^M^JCCS(P)>"
  1034.     endwhile
  1035.     port autobplus = on
  1036. return
  1037.  
  1038. ScriptSetup2:
  1039.     message "NIF.SCRのセットアップは、どことも通信してない状態で「スクリプト・スクリプト実行...」でNIF.SCRを実行することでも行う事ができます。"
  1040.  
  1041. ScriptSetup:
  1042.     menu "NIF.SCRセットアップメニュー(Escで終了)", 0, "ユーザIDの変更", "パスワードの変更", "ログ作成方法の変更"
  1043.     switch result
  1044.         case 0
  1045.             goto ScriptSetup
  1046.         case 1
  1047.             input "新しいユーザIDを入力して下さい。", %NifID
  1048.             if( cancel ) goto ScriptSetup
  1049.             input "新しいパスワードを入力して下さい。ログイン毎に入力したい場合は何も入力せずにOKして下さい。", %%NifPassword
  1050.             if( %%NifPassword == "" )
  1051.                 %%NifPassword = "毎回入力する"
  1052.             endif
  1053.             goto ScriptSetup
  1054.         case 2
  1055.             input "新しいパスワードを入力して下さい。ログイン毎に入力したい場合は何も入力せずにOKして下さい。", %%NifPassword
  1056.             if( %%NifPassword == "" )
  1057.                 %%NifPassword = "毎回入力する"
  1058.             endif
  1059.             goto ScriptSetup
  1060.         case 3
  1061.             menu "ログの作成方法を指定してください。", \
  1062.                  "&1 NIFTY.LOGというファイルに作成する。500Kバイトごとにバックアップする。", \
  1063.                  "&2 NIFmmdd.LOGというファイルに作成する。mmは月、ddは日", \
  1064.                  "&3 NIFyymm.LOGというファイルに作成する。yyは年、mmは月"
  1065.             if( result == -1 or result == 0 )
  1066.                 ; nothing to do
  1067.             else
  1068.                 %NifLogStyle = result
  1069.             endif
  1070.             goto ScriptSetup
  1071.     endswitch
  1072.     exit
  1073.  
  1074.  
  1075. ;電子会議室への複数発言 by 西口康宏氏
  1076. ;
  1077. ;書式  文章以外は行頭から書き、無駄な行も入れない事
  1078. ;"END"or"BYE"の後の行は無視される
  1079. ;
  1080. ;    |GO *******  <- フォーラム名
  1081. ;    |MES **      <- 会議室番号
  1082. ;    |RE:****      レスの時は番号、通常の発言の場合は省略するか、RE:NONとする
  1083. ;    |SUB:****     レスの場合は省略可
  1084. ;    |
  1085. ;    |  本文
  1086. ;    |
  1087. ;    |/POST
  1088. ;    |GO ********   以下繰り返し
  1089. ;    |MES **
  1090. ;    |
  1091. ;    |/POST
  1092. ;    |BYE or END            ;BYEの場合は回線切断 ENDの時はそのまま
  1093. ;
  1094. ;   フォーラムが同じ場合はGO *****は省略可。
  1095. ;   会議室が同じ場合はMES **も省略可。
  1096. ;   発言だけでなく、メールの送信も入れることができる。
  1097. ;
  1098. ;    |TO:xxxxxxx
  1099. ;    |SUB:xxxxxxx
  1100. ;    |
  1101. ;    |   本文
  1102. ;    |
  1103. ;    |/POST
  1104. ;
  1105. ;   という形式で入れておけばいい。
  1106. ;
  1107. ;  レスを付ける場合には、RE:xxxxとする代わりにRE xxxxとしてもいいが、
  1108. ;  この場合にはSUB:はRE xxxxの次の行に記述する必要がある
  1109. ;
  1110. ;
  1111. ;処理が正常に終わるとFORUM_UP.TXTはFORUM_UP.OLDに改名される。
  1112. ;
  1113.  
  1114. Forum_Up:                                    ;フォーラムへの複数発言を自動化
  1115.     #file = "FORUM_UP.TXT"
  1116.     chdir upload
  1117.     openfile #file
  1118.     restoredir
  1119.     if ( no )
  1120.         message "FORUM_UP.TXTが見つかりません。"
  1121.         goto Forum_Up_End
  1122.     endif
  1123.     
  1124.     readfile #file, #line                    ;"GO FORUM"読み込み
  1125.     #p = part(#line, 0, 1)
  1126.     if (#p == "") 
  1127.         message "FORUM_UP.TXTの書式が間違っています。"
  1128.         goto Forum_Up_End
  1129.     endif
  1130.     
  1131.     #Now_Forum = 0                                ;今から発言するフォーラム
  1132.     #Old_Forum = 0                                ;現在のフォーラム
  1133.     #Now_Mes = 0                                ;今から発言する会議室
  1134.     #Old_Mes = 0                                ;現在の会議室
  1135.     ##success = 0
  1136.     beginloop
  1137. UpLoad_loop:                                    ;複数発信のループ開始
  1138.         ;-----------------------例外&終了処理
  1139.         if (#line == "" or toupper( #line ) == "END" )
  1140.             ##success = 1
  1141.             breakloop
  1142.         endif
  1143.         if( toupper( #line ) == "BYE")
  1144.             send "BYE^M"
  1145.             ##success = 2
  1146.             breakloop
  1147.         endif
  1148.         ;-----------------------フォーラムへのジャンプ処理
  1149.         if( toupper( part( #line, 0, 3 ) ) == "GO " )
  1150.             #Now_Forum = #line
  1151.             if (#Now_Forum != #Old_Forum)         ;今回と前回のフォーラムの比較
  1152.                 #Old_Forum = #Now_Forum
  1153.                 #Old_Mes = 0                     ;フォーラムが変わった時は会議室消去
  1154.                 send #line+"^M"                  ;GO FORUM
  1155.                 timeout 30
  1156.                 wait postmilliidle(50) "E:終了^M^J>", postmilliidle(50) "FORUM>"
  1157.                 if (timeout)
  1158.                     message #line+"に行けませんでした。"
  1159.                     breakloop
  1160.                 endif
  1161.             endif
  1162.             readfile #file, #line
  1163.         endif
  1164.         ;-----------------------会議室へのジャンプ処理
  1165.         if( toupper( part( #line, 0, 4 ) ) == "MES " )
  1166.             #Now_Mes = #line
  1167.             if (#Now_Mes != #Old_Mes)                ;今回と前回の会議室の比較
  1168.                 #Old_Mes = #Now_Mes
  1169.                 send #line+"^M"                     ;MES **
  1170.                 timeout 30
  1171.                 wait "電子会議", "-会議室"
  1172.                 if (timeout)
  1173.                     message #line+"に行けませんでした。"
  1174.                     breakloop
  1175.                 endif
  1176.                 wait postmilliidle(50) ">", postmilliidle(50) "CCS(N)>" \
  1177.                     , postmilliidle(50) "CCS(P)>"
  1178.                 if (timeout)
  1179.                     message #line+"に行けませんでした。"
  1180.                     breakloop
  1181.                 endif
  1182.             endif
  1183.             readfile #file, #line
  1184.         endif
  1185.         ;-----------------------発言するぞ! 処理
  1186.         if( toupper( #line ) == "SMAIL" )
  1187.             readfile #file, #line
  1188.             send "SMAIL^M"
  1189.         elseif( toupper( part( #line, 0, 3 ) ) == "RE " )
  1190.             send #line + "^M"
  1191.             readfile #file, #line
  1192.         elseif( toupper( part( #line, 0, 3 ) ) == "TO:" )
  1193.             send "SMAIL^M"
  1194.         else
  1195.             send "COM^M"
  1196.         endif
  1197.         timeout 30
  1198.         wait postmilliidle(50) "本文(300 行まで 終了は行頭で/E)^M^J"
  1199.         if (timeout)
  1200.             message "応答が有りません 終了します。"
  1201.             breakloop
  1202.         endif
  1203.         ;-----------------------本文発信処理
  1204.         beginloop
  1205.             sendwrap #line+"^M"
  1206.             readfile #file, #line
  1207.             if( toupper( #line ) == "/POST" )
  1208.                 breakloop
  1209.             endif
  1210.         endloop
  1211.         send "/POST^M"
  1212.         timeout 30
  1213.         wait "-登録完了-", "-送信完了-"
  1214.         if (timeout)
  1215.             message "応答が有りません 終了します。"
  1216.             breakloop
  1217.         endif
  1218.         wait postmilliidle(50) ">", postmilliidle(50) "CCS(N)>", \
  1219.             postmilliidle(50) "CCS(P)>", postmilliidle(50) "FORUM>"
  1220.         if (timeout)
  1221.             message "応答が有りません 終了します。"
  1222.             breakloop
  1223.         endif
  1224.         ;-----------------------次のループのための処理
  1225.         readfile #file, #line                         ;"GO FORUM"読み込み
  1226.         if( no )
  1227.             ##success = 1
  1228.             breakloop
  1229.         endif
  1230.     endloop
  1231. Forum_Up_End:
  1232.     closefile #file
  1233.     if( ##success != 0 )
  1234.         chdir upload
  1235.         delfile "FORUM_UP.OLD"
  1236.         renamefile #file, "FORUM_UP.OLD"
  1237.         restoredir
  1238.         if( ##success == 2 )
  1239.             goto WaitLogOff
  1240.         endif
  1241.     endif
  1242.     return
  1243.