バイナリ・モードのために開かれる、ファイルか装置を指定します。
構文:
Open filename for Binary [Access access_type] [Lock lock_type] as [#]filenum
パラメタ:
filename
開くファイル名
access_type
ファイルが、読み込み用か、書き出し用か、あるいはその両方かを、指定します。
lock_type
ファイルを開いている間、他からの使用を、ロックします。
filenum
オープン・ファイルに関連づける、未使用のファイル番号
記述:
フリー形式で、ファイル
filenum からバイナリ・データを読む、または、ファイル
filenum に書くために、ファイルや装置を開きます。
ファイルが存在しないと、新しいファイルが作られます。
ファイル・ポインタは
Open で、バイトNo.1で初期化されます。
Get # と
Put # ファイル操作は、データのサイズによってファイル・ポインターを移動させます。ポインターはファイルの中で任意のバイトにセットすることができます。
ファイルの中のデータは、
Openで保存されます。
このファイルモードは、ファイルのデータの読み書きに、どんなバッファ変数も使用できます。
Get # と
Put # によって、データはバイナリ・モードで保存されます。これは、FreeBASICが使用する内部形式と同じです。
filename は、目標の OS に従ったファイル名となる文字列表現です。ワイルド・カードは使えません。
経路を与えないと、現在のディレクトリで、ファイルを捜します。
Access_type バイナリー・モードは、デフォルトで、ファイルを読み書きするこができます。
Access タイプを指定する場合は、下の1つになります。
- Read - ファイルは入力のためだけに開かれます。
- Write - ファイルは出力のためだけに開かれます。
- Read Write - ファイルは入出力のために開かれます。(デフォルト)
Lock_type は、ファイルを他のプロセス(ユーザかスレッド)のためにロックする方法で、下のいずれか 1 つを指定します。
- Shared - 他のプロセスは自由にファイルにアクセスできます。
- Lock Read - 読み込みするために、同時に、ファイルを開くことができません。
- Lock Write - 書くために、同時に、ファイルを開くことができません。
- Lock Read Write - 他のプロセスで、同時にファイルを開くことができません。
Lock_type を指定しないと、ファイルは、同じプログラムの他のスレッドのために、Shared です。また、他のプログラムに対しては、Lock Read Write になります。
Lock と Unlock は、ファイルの部分に対して、一時的にアクセスを制限するのに使用できます。
filenum は、現在開いている他のどのファイルにも使われていない、有効なファイル番号(1〜255の範囲)です。
ファイル番号は、以降のファイル操作で使うファイルを、特定します。
空いているファイル番号は、
FreeFile 関数を使って見つけることができます。
例:
'' バイナリ・データファイルを、中に、1つの数を登録した状態で、作ります
Dim x As Single = 17.164
Open "MyFile.Dat" For Binary As #1
'' 位置設定なしで置くと、最後の既知のファイル位置に置かれます。。
'' この例の場合は、ファイルのまさしく始めの部分になります。
Put #1, , x
Close #1
'' 今度は、上で書き込んだファイルから、数を読んでみます
Dim x As Single = 0
Open "MyFile.Dat" For Binary As #1
Get #1, , x
Close #1
Print x
Sleep
'' ファイルの内容全体を、文字列に読み込みます
Dim txt As String
Open "myfile.txt" For Binary Access Read As #1
If LOF(1) > 0 Then
'' 文字列変数には、ファイルがバイトで持っているのと同じだけの文字が、入ります
txt = String
(LOF(1), 0)
'' txtのサイズは知られています。文字列は、ファイル・データで満たされました。
Get #1, , txt
End If
Close #1
Print txt
Sleep
QBからの違い:
参照: