home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 5 / FREESOFT.BIN / mopterm / fapx405b / fapxdnld.plp < prev    next >
Text File  |  1992-08-19  |  4KB  |  172 lines

  1. /************************************************************************
  2. * データライブラリからの自動ダウンロード処理                 *
  3. *************************************************************************/
  4. %AUTOdwn1{
  5.     line:=line+1;
  6.     linebuf:={};
  7.     case    (file={memo1}||file={memo2}||file={memo3}||
  8.          file={memo4}||file={memo5}||file={memo6}||
  9.          file={memo7}||file={memo8}||file={memo9},
  10.         {Yes},
  11.         {case    (@mlast>=@getchar(file,5,1)&&@mcheck==0,
  12.             {Yes},
  13.             {linebuf:=@memo(@getchar(file,5,1),line,1)},
  14.             {No},
  15.             {
  16.             SNDMSG({okasi_f.snd});
  17.             display(file|{が使えません\n});
  18.             linebuf:={};
  19.             }
  20.             )
  21.         },
  22.         {No},
  23.         {linebuf:=@read(file,line,1)}
  24.         );
  25.     case    (@head(linebuf,{=}),
  26.         {forum},    /* フォーラムからのダウンロード */
  27.         {
  28.         DLIBDOWN(@tail(linebuf,{forum=},{;}),
  29.              @tail(linebuf,{libno=},{;}),
  30.              @tail(linebuf,{datano=},{;}),
  31.              @tail(linebuf,{docfile=},{;}),
  32.              @tail(linebuf,{datafile=},{;}));
  33.         AUTOdwn1;    /* 終わったら次の行を読む */
  34.         },
  35.         {profile},    /* プロフィール情報のダウンロード */
  36.         {
  37.         PROFDOWN(@tail(linebuf,{profile=},{;}));
  38.         AUTOdwn1;    /* 終わったら次の行を読む */
  39.         },
  40.         {},,        /* 空文字列なら終了 */
  41.         ,AUTOdwn1    /* それ以外なら次の行を読む */
  42.         );
  43.     };
  44.  
  45. %AUTOdown{
  46.     [file]
  47.     case    (@filechk(file)||file={memo1}||file={memo2}||file={memo3}||
  48.                  file={memo4}||file={memo5}||file={memo6}||
  49.                  file={memo7}||file={memo8}||file={memo9},
  50.         {Yes},
  51.         {line:=0;AUTOdwn1},
  52.         {No},
  53.         {
  54.         SNDMSG({okasi_f.snd});
  55.         display({\n}|file|{制御ファイルがありません\n});
  56.         }
  57.         );
  58.     };
  59.  
  60. %DLIBDOWN{
  61.     [forum,libno,datano,docfile,datafile]
  62.     display(forum|{の}|libno|{番ライブラリの}|datano|{番をダウンロードします\n});
  63.     footnote(forum|{の}|libno|{番ライブラリの}|datano|{番をダウンロードします});
  64.     case    (
  65.         forum={},
  66.         {Yes},{LIBDOWN(libno,datano,docfile,datafile)},
  67.         {No},
  68.         {
  69.         type({GO }|forum|{\n});
  70.         case    (@FORUMTOP={OK},
  71.             {No},,
  72.             {Yes},{LIBDOWN(libno,datano,docfile,datafile)}
  73.         );
  74.         }
  75.         );
  76.     };
  77.  
  78. %LIBDOWN{
  79.     [libno,datano,docfile,datafile]
  80.     type({LIB }|libno|{\n});
  81.     wait    (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
  82.         {3:アップロード(無料)  4:ダウンロード  E:終了)\n>},
  83.         {
  84.         type({DOWN }|datano|{ PROT:BPL\n});
  85.         mkdir2(@body(docfile,,{\}));
  86.         receive(docfile);
  87.         wait    (Wtime2*5,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
  88.             {項目 (1:OK  2:NG  E:終了)\n:},
  89.             {
  90.             stoprec;
  91.             type({1\n});
  92.             WAITCHAR(Wtime2,{ファイル名 (改行のみで終了)\n:},{});
  93.             mkdir2(@body(datafile,,{\}));
  94.             type(datafile|{\n});
  95.             WAITCHAR(,{-ダウンロード終了-},{});
  96.             WAITCHAR(Wtime2,{4:ダウンロード  E:終了)\n>},{});
  97.             },
  98.             {-該当するデータはありません-\n},
  99.             {
  100.             stoprec;
  101.             WAITCHAR(Wtime2,{4:ダウンロード  E:終了)\n>},{});
  102.             display({データ番号が違うため次の処理を行います\n});
  103.             SNDMSG({okasi_f.snd});
  104.             }
  105.             );
  106.         },
  107.         {\n>},
  108.         {
  109.         display({ライブラリ番号が違うため次の処理を行います\n});
  110.         SNDMSG({okasi_f.snd});
  111.         }
  112.         );
  113.     };
  114.  
  115. %PROFDOWN{
  116.     [uid]
  117.     %readall{
  118.         wait    (Wtime2*3,{AbortOff({ホストがおもいよ~})},
  119.             {◆該当利用者はいません◆\n>},{SNDMSG({okasi_f.snd})},
  120.             {◆入力データエラー◆\n>},{SNDMSG({okasi_f.snd})},
  121.             {プロフィールはありません-\n>},,
  122.             {\n>},
  123.             {wait(2);case(@laststr(2),{>},,,readall)}
  124.             );
  125.         };
  126.  
  127.     var    UID    [90];
  128.     display(uid|{の}|{プロフィール情報をダウンロードします\n});
  129.     footnote(uid|{の}|{プロフィール情報をダウンロードします\n});
  130.     mkdir2(LOG2|{profile});
  131.     UID:=uid;
  132.     loop    ({
  133.         %id1 @head(UID,{,});
  134.         UID:=@body(UID,{,});
  135.         case    (@nochar(id1)==8,
  136.             {Yes},
  137.             {
  138.             dispoff({Yes});
  139.             command({del }|LOG2|{profile\}|id1|{.prf});
  140.             dispoff({No});
  141.             receive(LOG2|{profile\}|id1|{.prf});
  142.             type({PROF }|id1|{\n});
  143.             readall;
  144.             stoprec;
  145.             }
  146.             );
  147.         case(UID,{},{im({No})},,{im({Yes})});
  148.         });
  149.     };
  150.  
  151. /*    ダウンロード制御ファイル指定の有無の判定処理    */
  152. %AUTODNLD{
  153.     display({自動ダウンロードを開始します\n});
  154.     footnote({自動ダウンロードをしています});
  155.     case(dnldcntl<>{},{Yes},{AUTOdown(dnldcntl);dnldcntl:={}});
  156.     case    (@filechk(TEMP2|{_mopdlib.ctl}),
  157.         {Yes},
  158.         {
  159.         AUTOdown(TEMP2|{_mopdlib.ctl});
  160.         dispoff({Yes});
  161.         command({del }|TEMP2|{_mopdlib.bak});
  162.         command({ren }|TEMP2|{_mopdlib.ctl _mopdlib.bak});
  163.         dispoff({No});
  164.         }
  165.         );
  166.     };
  167.  
  168. var    line    [3];    /* ダウンロード制御ファイル行カウンタ    */
  169. var    linebuf    [258];    /* ダウンロード制御文バッファ        */
  170.  
  171. AUTODNLD;
  172.