独自の拡張(file)

SET #経路番号 : ENDOFLINE 文字列式
 PRINT文,INPUT文,LINE INPUT文,WRITE文,READ文における行末(または記録末)文字を設定する。設定可能な値は,CHR$(13)&CHR$(10),CHR$(13),CHR$(10)のいずれか。
この文を実行する前の行末文字はCHR$(13)&CHR$(10)である。
MacやUnixなどのOSで作成されたファイルを読む場合に設定を変更する。
CHARACTER INPUT文ではこの文での設定を無視する。

ASK #経路番号 : FILESIZE 数値変数
 バイト単位のファイル長を数値変数に代入する。


SET DIRECTORY a$
 カレントディレクトリを文字列式a$が指定するディレクトリに変更する。

ASK DIRECTORY s$
 カレントディレクトリを表す文字列を文字列変数s$に代入する。


FILE GETNAME s$
 ファイルを開くダイアログを表示し,利用者が指定するファイル名を文字列変数s$に代入する。

FILE GETNAME s$, 文字列式
 文字列式の値を既定の拡張子としてファイルダイアログを開く。

FILE GETOPENNAME s$
FILE GETOPENNAME s$, 文字列式
 存在しないファイルは指定できない。他はFILE GETNAMEと同じ。

FILE GETSAVENAME s$
FILE GETSAVENAME s$, 文字列式
 保存ダイアログを表示する。機能的にはFILE GETNAMEと同じ。

FILE SPLITNAME (a$) path$, name$, ext$
 ファイル名を表す文字列式a$を,ドライブ名とパス名を表す部分,ファイル名本体,拡張子部分の3つに分割し,文字列変数path$, name$, ext$に代入する。

FILE RENAME a$,b$
 a$が示すファイルの名前をb$に変える。a$,b$は文字列式を書く。
 a$が指示するファイルが存在しないとextype9003,b$が指示するファイルがすでに存在する場合はextype 9004,他の理由で改名できないときはextype 9000 の例外状態になる。

FILE DELETE a$
 文字列式a$が示すファイルを削除する。
 ファイルが存在しないとextype 9003,削除できないときはextype 9000の例外状態になる。
 True BASICのUNSAVE文,Microsoft系BASICのKILL文に相当。

FILE LIST 文字列式,s$
 s$には1次元文字列配列を書く。
 文字列式に合致するファイル名の一覧をs$に代入する。
 文字列式にはワイルドカードを含めることができる。
 s$の上限は合致するファイル数にしたがって変更される。
 ただし,合致するファイルが存在しないと,extype 6005の例外を生成し,
 ファイル数が配列に許される要素数を超えると,extype 5001の例外を生成する。

組込関数
FILES(文字列式)
 文字列式に合致するファイルの数。存在しなければ0。

FILE文の使用例
 指定ファイルに含まれる英字をすべて大文字に変換する。

100 FILE GETNAME s$
110 FILE SPLITNAME(s$) path$,name$,ext$
120 LET t$=path$ & name$ & ".TMP"
130 OPEN #1:NAME s$
140 OPEN #2:NAME t$
150 ERASE #2
160 DO 
170    LINE INPUT #1,IF MISSING THEN EXIT DO:line$
180    LET line$=UCASE$(line$)
190    PRINT #2:line$
200 LOOP 
210 CLOSE #2
220 CLOSE #1
230 FILE DELETE s$
240 FILE RENAME t$,s$
250 END


FILES関数とFILE LISTの使用例

10 LET s$="c:\BASICw32\sample\*.bas"
20 LET n=files(s$)
30 IF n>0 THEN
40    DIM names$(n)
50    file list s$, names$
60    MAT PRINT names$
70 END IF
80 END



DIRECTORY GETNAME s$
 フォルダ選択ダイアログを表示し,利用者が指定するフォルダのパス名を文字列変数s$に代入する。

MAKE DIRECTORY 文字列式
 ディレクトリを作成する。

REMOVE DIRECTORY 文字列式
 ディレクトリを削除する。