home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 5
/
FREESOFT.BIN
/
mopterm
/
fapx405b
/
fapxdnld.plp
< prev
next >
Wrap
Text File
|
1992-08-19
|
4KB
|
172 lines
/************************************************************************
* データライブラリからの自動ダウンロード処理 *
*************************************************************************/
%AUTOdwn1{
line:=line+1;
linebuf:={};
case (file={memo1}||file={memo2}||file={memo3}||
file={memo4}||file={memo5}||file={memo6}||
file={memo7}||file={memo8}||file={memo9},
{Yes},
{case (@mlast>=@getchar(file,5,1)&&@mcheck==0,
{Yes},
{linebuf:=@memo(@getchar(file,5,1),line,1)},
{No},
{
SNDMSG({okasi_f.snd});
display(file|{が使えません\n});
linebuf:={};
}
)
},
{No},
{linebuf:=@read(file,line,1)}
);
case (@head(linebuf,{=}),
{forum}, /* フォーラムからのダウンロード */
{
DLIBDOWN(@tail(linebuf,{forum=},{;}),
@tail(linebuf,{libno=},{;}),
@tail(linebuf,{datano=},{;}),
@tail(linebuf,{docfile=},{;}),
@tail(linebuf,{datafile=},{;}));
AUTOdwn1; /* 終わったら次の行を読む */
},
{profile}, /* プロフィール情報のダウンロード */
{
PROFDOWN(@tail(linebuf,{profile=},{;}));
AUTOdwn1; /* 終わったら次の行を読む */
},
{},, /* 空文字列なら終了 */
,AUTOdwn1 /* それ以外なら次の行を読む */
);
};
%AUTOdown{
[file]
case (@filechk(file)||file={memo1}||file={memo2}||file={memo3}||
file={memo4}||file={memo5}||file={memo6}||
file={memo7}||file={memo8}||file={memo9},
{Yes},
{line:=0;AUTOdwn1},
{No},
{
SNDMSG({okasi_f.snd});
display({\n}|file|{制御ファイルがありません\n});
}
);
};
%DLIBDOWN{
[forum,libno,datano,docfile,datafile]
display(forum|{の}|libno|{番ライブラリの}|datano|{番をダウンロードします\n});
footnote(forum|{の}|libno|{番ライブラリの}|datano|{番をダウンロードします});
case (
forum={},
{Yes},{LIBDOWN(libno,datano,docfile,datafile)},
{No},
{
type({GO }|forum|{\n});
case (@FORUMTOP={OK},
{No},,
{Yes},{LIBDOWN(libno,datano,docfile,datafile)}
);
}
);
};
%LIBDOWN{
[libno,datano,docfile,datafile]
type({LIB }|libno|{\n});
wait (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{3:アップロード(無料) 4:ダウンロード E:終了)\n>},
{
type({DOWN }|datano|{ PROT:BPL\n});
mkdir2(@body(docfile,,{\}));
receive(docfile);
wait (Wtime2*5,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{項目 (1:OK 2:NG E:終了)\n:},
{
stoprec;
type({1\n});
WAITCHAR(Wtime2,{ファイル名 (改行のみで終了)\n:},{});
mkdir2(@body(datafile,,{\}));
type(datafile|{\n});
WAITCHAR(,{-ダウンロード終了-},{});
WAITCHAR(Wtime2,{4:ダウンロード E:終了)\n>},{});
},
{-該当するデータはありません-\n},
{
stoprec;
WAITCHAR(Wtime2,{4:ダウンロード E:終了)\n>},{});
display({データ番号が違うため次の処理を行います\n});
SNDMSG({okasi_f.snd});
}
);
},
{\n>},
{
display({ライブラリ番号が違うため次の処理を行います\n});
SNDMSG({okasi_f.snd});
}
);
};
%PROFDOWN{
[uid]
%readall{
wait (Wtime2*3,{AbortOff({ホストがおもいよ~})},
{◆該当利用者はいません◆\n>},{SNDMSG({okasi_f.snd})},
{◆入力データエラー◆\n>},{SNDMSG({okasi_f.snd})},
{プロフィールはありません-\n>},,
{\n>},
{wait(2);case(@laststr(2),{>},,,readall)}
);
};
var UID [90];
display(uid|{の}|{プロフィール情報をダウンロードします\n});
footnote(uid|{の}|{プロフィール情報をダウンロードします\n});
mkdir2(LOG2|{profile});
UID:=uid;
loop ({
%id1 @head(UID,{,});
UID:=@body(UID,{,});
case (@nochar(id1)==8,
{Yes},
{
dispoff({Yes});
command({del }|LOG2|{profile\}|id1|{.prf});
dispoff({No});
receive(LOG2|{profile\}|id1|{.prf});
type({PROF }|id1|{\n});
readall;
stoprec;
}
);
case(UID,{},{im({No})},,{im({Yes})});
});
};
/* ダウンロード制御ファイル指定の有無の判定処理 */
%AUTODNLD{
display({自動ダウンロードを開始します\n});
footnote({自動ダウンロードをしています});
case(dnldcntl<>{},{Yes},{AUTOdown(dnldcntl);dnldcntl:={}});
case (@filechk(TEMP2|{_mopdlib.ctl}),
{Yes},
{
AUTOdown(TEMP2|{_mopdlib.ctl});
dispoff({Yes});
command({del }|TEMP2|{_mopdlib.bak});
command({ren }|TEMP2|{_mopdlib.ctl _mopdlib.bak});
dispoff({No});
}
);
};
var line [3]; /* ダウンロード制御ファイル行カウンタ */
var linebuf [258]; /* ダウンロード制御文バッファ */
AUTODNLD;