!サンプル閲覧ツール1 SECOND 2007/02/01 03:42:16 └!更新、クイック・サンプル2.BAS SECOND 2007/02/02 01:37:46 ├トラブル・ノート SECOND 2007/02/05 15:58:58 └!更新、クイック・サンプル3.BAS SECOND 2007/02/05 20:01:13 └!バグ訂正、クイック・サンプル3-1.BAS SECOND 2007/02/06 16:10:33 └!変数の除去、クイック・サンプル3-2.BAS SECOND 2007/02/06 16:49:58 └!更新、クイック・サンプル4.BAS SECOND 2007/02/06 21:22:41 └!更新、クイック・サンプル5.BAS(Loadの追... SECOND 2007/02/12 20:40:20
!サンプル閲覧ツール1 SECOND 2007/02/01 03:42:16 ツリーへ
!サンプル閲覧ツール1 |
返事を書く ノートメニュー |
SECOND <cszcthjjdj> 2007/02/01 03:42:16 | |
!サンプル閲覧ツール1
!(仮称)十進BASIC には、沢山のサンプルプログラムが付属していますが、 !どこに何があるのか探すのは・・ややたいへん。それを解消する試みです。 !※このプログラムは、BASIC.EXE と同じ場所にある前提。(DATA 文のパス名参照) !左クリックで、フォルダーとファイルを次々と選んで下さい。 !右クリックで、終了します。 SET WINDOW 0,3,27,-6 DIM p$(20),names$(80) DATA TEXTFILE\,TUTORIAL\,USERLIB\,COMM\ ,COMPLEX\,FRACTAL\,FUNCTION\ DATA GUIDE\ ,LIBRARY\ ,MATH\ ,MICROSFT\,"Q&A\" ,SAMPLE\ ,STATEMEN\ FOR w=1 TO 20 READ IF MISSING THEN EXIT FOR: p$(w) NEXT w LET m=2 CALL basfiles DO MOUSE POLL mx,my,mlb,mrb IF mrb=1 THEN STOP !右クリック IF mlb=1 THEN !左クリック IF 0<my THEN LET b=INT(mx)*27+CEIL(my) IF b=<n THEN CALL sampdisp ELSE LET m=INT(my+6)*3+CEIL(mx) CALL basfiles END IF END IF WAIT DELAY 0 !クロックアップを押える LOOP SUB basfiles CLEAR FOR i=0 TO 4 FOR j=1 TO 3 LET w=i*3+j PLOT TEXT,AT j-1,i-5 :p$(w) NEXT j NEXT i LET n=files(p$(m)&"*.*") IF n>0 THEN file list p$(m)&"*.*", names$ FOR j=0 TO 2 FOR i=1 TO 27 LET w=j*27+i IF n<w THEN EXIT FOR PLOT TEXT,AT j,i :p$(m)&names$(w) NEXT i IF n<w THEN EXIT FOR NEXT j END IF DO MOUSE POLL mx,my,mlb,mrb LOOP UNTIL mlb=0 !マウスボタンが離れるまで待つ。 END SUB SUB sampdisp PRINT "!*******************************" PRINT "!"&p$(m)&names$(b) PRINT "!*******************************" WHEN EXCEPTION IN OPEN #1: NAME p$(m)&names$(b),ACCESS INPUT FOR L=1 TO 200 ! 最大制限行数 WHEN EXCEPTION IN LINE INPUT #1,IF MISSING THEN EXIT FOR :w$ PRINT w$ USE END WHEN NEXT L USE END WHEN CLOSE #1 DO MOUSE POLL mx,my,mlb,mrb LOOP UNTIL mlb=0 !マウスボタンが離れるまで待つ。 END SUB END |
└!更新、クイック・サンプル2.BAS SECOND 2007/02/02 01:37:46 ツリーへ
Re: !サンプル閲覧ツール1 |
返事を書く ノートメニュー |
SECOND <cszcthjjdj> 2007/02/02 01:37:46 | |
!更新、クイック・サンプル2.BAS
!(仮称)十進BASIC には、沢山のサンプルプログラムが付属していますが、 !どこに何があるのか探すのは・・ややたいへんです。 !左クリックで、フォルダーとファイル内容を次々と表示します。 !右クリックで、終了。 SET WINDOW 0, 3, 27,-6 SET AREA COLOR 5 DIM p$(18),names$(100) !※このプログラムを、コピー・ペースト、又は ! BASIC.EXE と同じ場所において起動した場合の DATA 文 DATA TEXTFILE\,TUTORIAL\,USERLIB\,COMM\ ,COMPLEX\,FRACTAL\,FUNCTION\ DATA GUIDE\ ,LIBRARY\ ,MATH\ ,MICROSFT\,"Q&A\" ,SAMPLE\ ,STATEMEN\,.\ FOR w=1 TO 18 READ IF MISSING THEN EXIT FOR: p$(w) NEXT w LET m=2 CALL basfiles PLOT TEXT,AT 0.8,16 :"フォルダとファイル名を、左クリックして下さい。" PLOT TEXT,AT 0.8,18 :"テキスト窓は、縦に広げると、見やすくなります。" PLOT TEXT,AT 1.9,20 :"右クリックで、終了。" DO MOUSE POLL mx,my,mlb,mrb IF mrb=1 THEN EXIT DO !右クリック IF mlb=1 THEN !左クリック IF 0<my THEN LET b=INT(mx)*27+CEIL(my) IF b=<n AND b<>bak THEN CALL sampdisp LET bak=b ELSEIF my<-1 THEN LET bak=0 LET m=INT(my+6)*3+CEIL(mx) CALL basfiles END IF DO MOUSE POLL mx,my,mlb,mrb LOOP UNTIL mlb=0 !マウスボタンが離れるまで待つ。 END IF WAIT DELAY 0 !クロックアップを押える LOOP SET TEXT COLOR 4 PLOT TEXT,AT 1.4,0 :"終了しました。" SUB basfiles CLEAR FOR i=0 TO 4 FOR j=1 TO 3 LET w=i*3+j IF w=m THEN PLOT AREA:j-1,i-5;j,i-5;j,i-6;j-1,i-6 PLOT TEXT,AT j-1+0.03,i-5 :p$(w) NEXT j NEXT i LET n=files(p$(m)&"*.*") IF n>0 THEN file list p$(m)&"*.*", names$ FOR w=1 TO n PLOT TEXT,AT IP((w-1)/27)+0.03, MOD((w-1),27)+1 :names$(w) NEXT w END SUB SUB sampdisp LET x=IP((wb-1)/27) LET y=MOD((wb-1),27) SET LINE COLOR 0 PLOT LINES:x,y; x+0.9,y; x+0.9,y+1; x,y+1; x,y LET wb=b LET x=IP((wb-1)/27) LET y=MOD((wb-1),27) SET LINE COLOR 2 PLOT LINES:x,y; x+0.9,y; x+0.9,y+1; x,y+1; x,y PRINT "!*******************************" PRINT "!"&p$(m)&names$(b) PRINT "!*******************************" WHEN EXCEPTION IN OPEN #1: NAME p$(m)&names$(b),ACCESS INPUT FOR L=1 TO 500 ! 最大表示行数 WHEN EXCEPTION IN LINE INPUT #1,IF MISSING THEN EXIT FOR :w$ PRINT w$ USE END WHEN NEXT L USE END WHEN CLOSE #1 END SUB END |
├トラブル・ノート SECOND 2007/02/05 15:58:58 ツリーへ
Re: !更新、クイック・サンプル2.BAS |
返事を書く ノートメニュー |
SECOND <cszcthjjdj> 2007/02/05 15:58:58 | |
トラブル・ノート
このプログラムは、相対パス名を使用しているため、サンプル・フォルダが、 配下に見える場所(おそらくは、BASIC.EXE と同じ場所)に、一旦保存して、 そこから、ロード・起動して下さい。 このプログラムを、コピー・ペーストだけで、走らせた場合 次のような不都合が起きます。 sample フォルダーの、表示されたプログラムを、実行するため、 テキスト・ウィンドウから、コピーしないで、 直接、開く→ sampleを開ける→ ロード実行すると、 再度、表示切替で、NoName1.BAS(クイック・サンプル2)を動かしても、 ファイル表示が、出来なくなっています。 理由は、カレント・ディレクトリーが、sample になっていて、 そこからは、他のフォルダーが見えないからです。NoName1.BAS には、 自分の居場所が、定まっていないためでしょう。 ディスクから起動されたプログラムなら、そのフォルダを中心に 相対パスが、形成される為、例え表示切替で、再実行しても、 こうした不都合は起きません。 DATA文のパス名を、絶対パスに書き換えると、こんな問題は起きませんが 特定の使用者専用のパス名となるかもしれません。 |
└!更新、クイック・サンプル3.BAS SECOND 2007/02/05 20:01:13 ツリーへ
Re: !更新、クイック・サンプル2.BAS |
返事を書く ノートメニュー |
SECOND <cszcthjjdj> 2007/02/05 20:01:13 | |
!更新、クイック・サンプル3.BAS
!サンプル名表示数がいっぱいで、余裕がないため、表示列数を、可変にした。 !長いファイル名は、それなりにあきらめる。 !(仮称)十進BASIC には、沢山のサンプルプログラムが付属しています。 !左クリックで、フォルダーとファイル内容を次々と表示します。 !右クリックで、終了。 LET V=5 ! 表示列数 3~5 SET WINDOW 0, V, 27,-6 SET AREA COLOR 5 DIM p$(5*V),names$(200) !下の DATA 文は、各フォルダーが配下に見える場所(BASIC.EXE と同じ場所)に !このプログラムを置いて起動する場合の例。 DATA TEXTFILE\,TUTORIAL\,USERLIB\,COMM\ ,COMPLEX\,FRACTAL\,FUNCTION\ DATA GUIDE\ ,LIBRARY\ ,MATH\ ,MICROSFT\,"Q&A\" ,SAMPLE\ ,STATEMEN\,.\ FOR f=1 TO 25 READ IF MISSING THEN EXIT FOR: p$(f) NEXT f LET m=2 CALL basfiles PLOT TEXT,AT 0.8,16 :"フォルダとファイル名を、左クリックして下さい。" PLOT TEXT,AT 0.8,18 :"テキスト窓は、縦に広げると、見やすくなります。" PLOT TEXT,AT 1.9,20 :"右クリックで、終了。" DO MOUSE POLL mx,my,mlb,mrb IF mrb=1 THEN EXIT DO !右クリック IF mlb=1 THEN !左クリック IF 0<my THEN LET b=INT(mx)*27+CEIL(my) IF b=<n AND b<>bak THEN CALL sampdisp LET bak=b ELSEIF my<-1 THEN LET bak=0 LET m=INT(my+6)*V+CEIL(mx) IF m<f THEN CALL basfiles END IF DO MOUSE POLL mx,my,mlb,mrb LOOP UNTIL mlb=0 !マウスボタンが離れるまで待つ。 END IF WAIT DELAY 0 !クロックアップを押える LOOP SET TEXT COLOR 4 PLOT TEXT,AT 1.4,0 :"終了しました。" SUB basfiles CLEAR SET TEXT BACKGROUND "TRANSPARENT" ! background none FOR i=0 TO 4 FOR j=1 TO V LET w=i*V+j IF w=m THEN PLOT AREA:j-1,i-5;j,i-5;j,i-6;j-1,i-6 PLOT TEXT,AT j-1+0.03,i-5 :p$(w) NEXT j NEXT i LET n=files(p$(m)&"*.*") IF n>0 THEN file list p$(m)&"*.*", names$ SET TEXT BACKGROUND "OPAQUE" ! background color 0 FOR w=1 TO n PLOT TEXT,AT IP((w-1)/27)+0.03, MOD((w-1),27)+1 :names$(w) NEXT w END SUB SUB sampdisp LET x=IP((wb-1)/27) LET y=MOD((wb-1),27) SET LINE COLOR 0 PLOT LINES:x,y; x+1-0.03,y; x+1-0.03,y+1; x,y+1; x,y LET wb=b LET x=IP((wb-1)/27) LET y=MOD((wb-1),27) SET LINE COLOR 2 PLOT LINES:x,y; x+1-0.03,y; x+1-0.03,y+1; x,y+1; x,y PRINT "!*******************************" PRINT "!"&p$(m)&names$(b) PRINT "!*******************************" WHEN EXCEPTION IN OPEN #1: NAME p$(m)&names$(b),ACCESS INPUT FOR L=1 TO 500 ! 最大表示行数 WHEN EXCEPTION IN LINE INPUT #1,IF MISSING THEN EXIT FOR :w$ PRINT w$ USE END WHEN NEXT L USE END WHEN CLOSE #1 END SUB END |
└!バグ訂正、クイック・サンプル3-1.BAS SECOND 2007/02/06 16:10:33 ツリーへ
Re: !更新、クイック・サンプル3.BAS |
返事を書く ノートメニュー |
SECOND <cszcthjjdj> 2007/02/06 16:10:33 | |
!バグ訂正、クイック・サンプル3-1.BAS
!フォルダー表示の空きエリアで左クリックした後ファイル内容が出ない、を訂正。 !(仮称)十進BASIC には、沢山のサンプルプログラムが付属しています。 !左クリックで、フォルダーとファイル内容を次々と表示します。 !右クリックで、終了。 LET V=5 ! 表示列数 3~5 SET WINDOW 0, V, 27,-6 SET AREA COLOR 5 DIM p$(5*V),names$(200) !下の DATA 文は、各フォルダーが配下に見える場所(BASIC.EXE と同じ場所)に !このプログラムを置いて起動する場合の例。 DATA TEXTFILE\,TUTORIAL\,USERLIB\,COMM\ ,COMPLEX\,FRACTAL\,FUNCTION\ DATA GUIDE\ ,LIBRARY\ ,MATH\ ,MICROSFT\,"Q&A\" ,SAMPLE\ ,STATEMEN\,.\ FOR f=1 TO 25 READ IF MISSING THEN EXIT FOR: p$(f) NEXT f LET w=2 CALL basfiles PLOT TEXT,AT 0.8,16 :"フォルダとファイル名を、左クリックして下さい。" PLOT TEXT,AT 0.8,18 :"テキスト窓は、縦に広げると、見やすくなります。" PLOT TEXT,AT 1.9,20 :"右クリックで、終了。" DO MOUSE POLL mx,my,mlb,mrb IF mrb=1 THEN EXIT DO !右クリック IF mlb=1 THEN !左クリック IF 0<my THEN LET b=INT(mx)*27+CEIL(my) IF b=<n AND b<>bak THEN CALL sampdisp ELSEIF my<-1 THEN LET w=INT(my+6)*V+CEIL(mx) IF w<f THEN CALL basfiles END IF DO MOUSE POLL mx,my,mlb,mrb LOOP UNTIL mlb=0 !マウスボタンが離れるまで待つ。 END IF WAIT DELAY 0 !クロックアップを押える LOOP SET TEXT COLOR 4 PLOT TEXT,AT 1.4,0 :"終了しました。" SUB basfiles LET m=w CLEAR SET TEXT BACKGROUND "TRANSPARENT" ! background none FOR i=0 TO 4 FOR j=1 TO V LET w=i*V+j IF w=m THEN PLOT AREA:j-1,i-5;j,i-5;j,i-6;j-1,i-6 PLOT TEXT,AT j-1+0.03,i-5 :p$(w) NEXT j NEXT i LET n=files(p$(m)&"*.*") IF n>0 THEN file list p$(m)&"*.*", names$ SET TEXT BACKGROUND "OPAQUE" ! background color 0 FOR w=1 TO n PLOT TEXT,AT IP((w-1)/27)+0.03, MOD((w-1),27)+1 :names$(w) NEXT w LET bak=0 END SUB SUB sampdisp LET x=IP((wb-1)/27) LET y=MOD((wb-1),27) SET LINE COLOR 0 PLOT LINES:x,y; x+1-0.03,y; x+1-0.03,y+1; x,y+1; x,y LET wb=b LET x=IP((wb-1)/27) LET y=MOD((wb-1),27) SET LINE COLOR 2 PLOT LINES:x,y; x+1-0.03,y; x+1-0.03,y+1; x,y+1; x,y PRINT "!*******************************" PRINT "!"&p$(m)&names$(b) PRINT "!*******************************" WHEN EXCEPTION IN OPEN #1: NAME p$(m)&names$(b),ACCESS INPUT FOR L=1 TO 500 ! 最大表示行数 WHEN EXCEPTION IN LINE INPUT #1,IF MISSING THEN EXIT FOR :w$ PRINT w$ USE END WHEN NEXT L USE END WHEN CLOSE #1 LET bak=b END SUB END |
└!変数の除去、クイック・サンプル3-2.BAS SECOND 2007/02/06 16:49:58 ツリーへ
Re: !バグ訂正、クイック・サンプル3-1.BAS |
返事を書く ノートメニュー |
SECOND <cszcthjjdj> 2007/02/06 16:49:58 | |
!変数の除去、クイック・サンプル3-2.BAS
!wb、bak、が無駄にダブっていたのを、修正。 !(仮称)十進BASIC には、沢山のサンプルプログラムが付属しています。 !左クリックで、フォルダーとファイル内容を次々と表示します。 !右クリックで、終了。 LET V=5 ! 表示列数 3~5 SET WINDOW 0, V, 27,-6 SET AREA COLOR 5 DIM p$(5*V),names$(200) !下の DATA 文は、各フォルダーが配下に見える場所(BASIC.EXE と同じ場所)に !このプログラムを置いて起動する場合の例。 DATA TEXTFILE\,TUTORIAL\,USERLIB\,COMM\ ,COMPLEX\,FRACTAL\,FUNCTION\ DATA GUIDE\ ,LIBRARY\ ,MATH\ ,MICROSFT\,"Q&A\" ,SAMPLE\ ,STATEMEN\,.\ FOR f=1 TO 25 READ IF MISSING THEN EXIT FOR: p$(f) NEXT f LET w=2 CALL basfiles PLOT TEXT,AT 0.8,16 :"フォルダとファイル名を、左クリックして下さい。" PLOT TEXT,AT 0.8,18 :"テキスト窓は、縦に広げると、見やすくなります。" PLOT TEXT,AT 1.9,20 :"右クリックで、終了。" DO MOUSE POLL mx,my,mlb,mrb IF mrb=1 THEN EXIT DO !右クリック IF mlb=1 THEN !左クリック IF 0<my THEN LET b=INT(mx)*27+CEIL(my) IF b=<n AND b<>bak THEN CALL sampdisp ELSEIF my<-1 THEN LET w=INT(my+6)*V+CEIL(mx) IF w<f THEN CALL basfiles END IF DO MOUSE POLL mx,my,mlb,mrb LOOP UNTIL mlb=0 !マウスボタンが離れるまで待つ。 END IF WAIT DELAY 0 !クロックアップを押える LOOP SET TEXT COLOR 4 PLOT TEXT,AT 1.4,0 :"終了しました。" SUB basfiles LET m=w CLEAR SET TEXT BACKGROUND "TRANSPARENT" ! background none FOR i=0 TO 4 FOR j=1 TO V LET w=i*V+j IF w=m THEN PLOT AREA:j-1,i-5;j,i-5;j,i-6;j-1,i-6 PLOT TEXT,AT j-1+0.03,i-5 :p$(w) NEXT j NEXT i LET n=files(p$(m)&"*.*") IF n>0 THEN file list p$(m)&"*.*", names$ SET TEXT BACKGROUND "OPAQUE" ! background color 0 FOR w=1 TO n PLOT TEXT,AT IP((w-1)/27)+0.03, MOD((w-1),27)+1 :names$(w) NEXT w LET bak=0 END SUB SUB sampdisp LET x=IP((bak-1)/27) LET y=MOD((bak-1),27) SET LINE COLOR 0 PLOT LINES:x,y; x+1-0.03,y; x+1-0.03,y+1; x,y+1; x,y LET x=IP((b-1)/27) LET y=MOD((b-1),27) SET LINE COLOR 2 PLOT LINES:x,y; x+1-0.03,y; x+1-0.03,y+1; x,y+1; x,y PRINT "!*******************************" PRINT "!"&p$(m)&names$(b) PRINT "!*******************************" WHEN EXCEPTION IN OPEN #1: NAME p$(m)&names$(b),ACCESS INPUT FOR L=1 TO 500 ! 最大表示行数 WHEN EXCEPTION IN LINE INPUT #1,IF MISSING THEN EXIT FOR :w$ PRINT w$ USE END WHEN NEXT L USE END WHEN CLOSE #1 LET bak=b END SUB END |
└!更新、クイック・サンプル4.BAS SECOND 2007/02/06 21:22:41 ツリーへ
Re: !変数の除去、クイック・サンプル3-2.BAS |
返事を書く ノートメニュー |
SECOND <cszcthjjdj> 2007/02/06 21:22:41 | |
!更新、クイック・サンプル4.BAS
!(仮称)十進BASIC には、沢山のサンプルプログラムが付属しています。 !左クリックで、フォルダーとファイル内容を次々と表示します。 !右クリックで、終了。 LET V=5 ! 表示列数 3~5 SET WINDOW 0, V, 27,-6 SET AREA COLOR 5 DIM p$(5*V),names$(200) !下の DATA 文は、各フォルダーが配下に見える場所(BASIC.EXE と同じ場所)に !このプログラムを置いて起動する場合の例。 DATA TEXTFILE\,TUTORIAL\,USERLIB\,COMM\ ,COMPLEX\,FRACTAL\,FUNCTION\ DATA GUIDE\ ,LIBRARY\ ,MATH\ ,MICROSFT\,"Q&A\" ,SAMPLE\ ,STATEMEN\,.\ FOR f=1 TO 25 READ IF MISSING THEN EXIT FOR: p$(f) NEXT f LET w=2 CALL basfiles PLOT TEXT,AT 0.8,16 :"フォルダとファイル名を、左クリックして下さい。" PLOT TEXT,AT 0.8,17 :"※青ベルト部分を左クリックすると順送りします。" PLOT TEXT,AT 0.8,19 :"テキスト窓は、縦に広げると、見やすくなります。" PLOT TEXT,AT 1.9,21 :"右クリックで、終了。" DO MOUSE POLL mx,my,mlb,mrb IF mrb=1 THEN EXIT DO !右クリック IF mlb=1 THEN !左クリック IF -1<my THEN IF 0<my THEN LET b=INT(mx)*27+CEIL(my) ELSE LET b=bak+1 IF b=<n AND b<>bak THEN CALL sampdisp ELSEIF my<-1 THEN LET w=INT(my+6)*V+CEIL(mx) IF w<f THEN CALL basfiles END IF DO MOUSE POLL mx,my,mlb,mrb LOOP UNTIL mlb=0 AND mrb=0 !マウスボタンが離れるまで待つ。 END IF WAIT DELAY 0 !クロックアップを押える LOOP SET TEXT COLOR 4 PLOT TEXT,AT V-1.6,0 :"終了しました。" SUB basfiles LET m=w CLEAR PLOT AREA:0,-1;V,-1;V,0;0,0 SET TEXT BACKGROUND "TRANSPARENT" ! background none FOR i=0 TO 4 FOR j=1 TO V LET w=i*V+j IF w=m THEN PLOT AREA:j-1,i-5;j,i-5;j,i-6;j-1,i-6 PLOT TEXT,AT j-1+0.03,i-5 :p$(w) NEXT j NEXT i LET n=files(p$(m)&"*.*") IF n>0 THEN file list p$(m)&"*.*", names$ SET TEXT BACKGROUND "OPAQUE" ! background color 0 FOR w=1 TO n PLOT TEXT,AT IP((w-1)/27)+0.03, MOD((w-1),27)+1 :names$(w) NEXT w LET bak=0 END SUB SUB sampdisp LET x=IP((bak-1)/27) LET y=MOD((bak-1),27) SET LINE COLOR 0 PLOT LINES:x,y; x+1-0.03,y; x+1-0.03,y+1; x,y+1; x,y LET x=IP((b-1)/27) LET y=MOD((b-1),27) SET LINE COLOR 2 PLOT LINES:x,y; x+1-0.03,y; x+1-0.03,y+1; x,y+1; x,y PRINT "!*******************************" PRINT "!"&p$(m)&names$(b) PRINT "!*******************************" WHEN EXCEPTION IN OPEN #1: NAME p$(m)&names$(b),ACCESS INPUT FOR L=1 TO 500 ! 最大表示行数 WHEN EXCEPTION IN LINE INPUT #1,IF MISSING THEN EXIT FOR :w$ PRINT w$ USE END WHEN NEXT L USE END WHEN CLOSE #1 LET bak=b END SUB END |
└!更新、クイック・サンプル5.BAS(Loadの追... SECOND 2007/02/12 20:40:20 ツリーへ
Re: !更新、クイック・サンプル4.BAS |
返事を書く ノートメニュー |
SECOND <cszcthjjdj> 2007/02/12 20:40:20 | |
!更新、クイック・サンプル5.BAS(Load の追加)
LET V=5 ! 表示列数 3~5 SET WINDOW 0, V, 27,-6 SET AREA COLOR 5 DIM p$(5*V),names$(200) !下の DATA 文は、各フォルダーが配下に見える場所(BASIC.EXE と同じ場所)に !このプログラムを置いて起動する場合の例。 DATA TEXTFILE\,TUTORIAL\,USERLIB\,COMM\ ,COMPLEX\,FRACTAL\,FUNCTION\ DATA GUIDE\ ,LIBRARY\ ,MATH\ ,MICROSFT\,"Q&A\" ,SAMPLE\ ,STATEMEN\,.\ FOR f=1 TO 25 READ IF MISSING THEN EXIT FOR: p$(f) NEXT f LET w=2 CALL basfiles PLOT TEXT,AT V*.3,16 :"フォルダとファイル名を、左クリックして下さい。" PLOT TEXT,AT V*.3,18 :"※青ベルト部分を左クリックすると順送りします。" PLOT TEXT,AT V*.3,19 :"※青□に再度、左クリックすると、ロードします。" PLOT TEXT,AT V*.3,21 :"テキスト窓は、縦に広げると、見やすくなります。" PLOT TEXT,AT V*.3,23 :"右クリックで、終了。" DO MOUSE POLL mx,my,mlb,mrb IF mrb=1 THEN EXIT DO !右クリック IF mlb=1 THEN !左クリック IF -1<my THEN IF 0<my THEN LET b=INT(mx)*27+CEIL(my) ELSE LET b=bak+1 IF b=<n THEN IF b<>bak THEN CALL sampdisp ELSE execute "BASIC.EXE" WITH("/NR",p$(m)&names$(b)) END IF ELSEIF my<-1 THEN LET w=INT(my+6)*V+CEIL(mx) IF w<f THEN CALL basfiles END IF DO MOUSE POLL mx,my,mlb,mrb LOOP UNTIL mlb=0 AND mrb=0 !マウスボタンが離れるまで待つ。 END IF WAIT DELAY 0 !クロックアップを押える LOOP SET TEXT COLOR 4 PLOT TEXT,AT V-1.6,0 :"終了しました。" SUB basfiles LET m=w CLEAR PLOT AREA:0,-1;V,-1;V,0;0,0 SET TEXT BACKGROUND "TRANSPARENT" ! background none FOR i=0 TO 4 FOR j=1 TO V LET w=i*V+j IF w=m THEN PLOT AREA:j-1,i-5;j,i-5;j,i-6;j-1,i-6 PLOT TEXT,AT j-1+0.03,i-5 :p$(w) NEXT j NEXT i LET n=files(p$(m)&"*.*") IF n>0 THEN file list p$(m)&"*.*", names$ SET TEXT BACKGROUND "OPAQUE" ! background color 0 FOR w=1 TO n PLOT TEXT,AT IP((w-1)/27)+0.03, MOD((w-1),27)+1 :names$(w) NEXT w LET bak=0 END SUB SUB sampdisp LET x=IP((bak-1)/27) LET y=MOD((bak-1),27) SET LINE COLOR 0 PLOT LINES:x,y; x+1-0.03,y; x+1-0.03,y+1; x,y+1; x,y LET x=IP((b-1)/27) LET y=MOD((b-1),27) SET LINE COLOR 2 PLOT LINES:x,y; x+1-0.03,y; x+1-0.03,y+1; x,y+1; x,y PRINT "!*******************************" PRINT "!"&p$(m)&names$(b) PRINT "!*******************************" WHEN EXCEPTION IN OPEN #1: NAME p$(m)&names$(b),ACCESS INPUT FOR L=1 TO 500 ! 最大表示行数 WHEN EXCEPTION IN LINE INPUT #1,IF MISSING THEN EXIT FOR :w$ PRINT w$ USE END WHEN NEXT L USE END WHEN CLOSE #1 LET bak=b END SUB END |