home *** CD-ROM | disk | FTP | other *** search
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- @ @
- @ F-BASIC386V1.1用 ファイルサイズを与えるサブルーチン! @
- @ @
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-
- load@ って、便利になりましたね。どんなファイルでも、INPUT#よりも早く読み出せ
- るようになりました(L20以降ですが)。
- しかし、この命令にも欠陥があります。データを格納する配列のサイズがファイルサ
- イズよりも大きい時、とんでもないエラーが出てしまうのです。小さい時にはこんなエ
- ラーは出ませんが、ファイルを読み出せなければ意味がありません。
- そこで、次のサブルーチンを使ってみてください。ファイルサイズを求めることが出
- 来ます。
-
- ---------------------------------------
-
- 10 '::: ファイルサイズを与えるサブルーチン :::
- 20 ' Programed by S.Katayama(MHF00460)
- 30 ' 入力 F_F$:調べるファイル名
- 40 ' 出力 F_SI:ファイルのサイズ(バイト単位)
- 50 *FILESIZE
- 60 F_1 =INSTR (F_F$,":")
- 61 F_D$=LEFT$ (F_F$,F_1)
- 62 F_F$=RIGHT$(F_F$,LEN(F_F$)-LEN(F_D$))
- 70 OPEN "R",#3,F_D$+"(1)"+F_F$
- 80 F_SI=LOF(3)
- 90 CLOSE #3
- 100 RETURN
-
- ---------------------------------------
-
- プログラムリストの部分だけ、WINK等で切り抜いて使ってくださいね。
- このプログラムでは、ランダムファイルのレコード長を1バイトに設定し、最終レコ
- ード番号をLOF() 関数を用いて擬似的にファイルサイズを求めています。
-
- (注意!)
- ・ ファイル番号3を使用していますが、変更して構いません。変更する場所は、70
- 80 90 の各行です。
- ・ エラートラップは全くしてありませんので、ファイルが見つからない等のエラー
- が出ると止まってしまいます。困る人は、各自エラートラップを作ってください。
- ・ F_SIには、ファイルサイズが「バイト単位」で返ってきます。従って、配列サイ
- ズをもとめるときには注意してください。
- +---------------------+
- | 整数型(%) → F_SIを2で割る | 小数点以下切上げ。
- | ロング型整数変数(&) ↓ | 計算後出てきた数が配列の
- | 単精度変数(!) → F_SIを4で割る。|サイズである。
- | 倍精度変数(#) → F_SIを8で割る。| (^_^)
- +---------------------+
-
- これで、エラーが出ることは無いと思います(^_^)
- 困った時には、使ってください。但し、このプログラムを使うのは構いませんが、こ
- のプログラム単独でお金をもらったりはしないでくださいね。
-
- 質問・ご意見等ありましたら、メールor会議室へどうぞ!
- BASICプログラミング救助隊(あらら・・・)
- しんたろさん(片山慎太郎:MHF00460)