新しく発言する EXIT インデックスへ
!サンプル閲覧ツール1

  !サンプル閲覧ツール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 "!*******************************"
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 "!*******************************"
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 "!*******************************"
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 "!*******************************"
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 "!*******************************"
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 "!*******************************"
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 "!*******************************"
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


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。