出力モードで開くために、テキスト・ファイルを指定します。
構文:
open filename for Output [encoding encoding_type] [lock lock_type] as [#]filenum
パラメタ:
filename
出力のために開くファイル名
encoding_type
ファイルのコード化形式を指示します。
lock_type
ファイルが開いている間、使用をロックします。
filenum
オープン・ファイルに関連づける、未使用のファイル番号
記述:
書き出し用にテキスト・ファイルを開くとき、
Open と共に使うファイル・モード。
FreeBASICで、テキスト・ファイルを、同時に読み書きできないので、同じファイルで両方の操作をする場合は、二度ファイルを開かなければなりません。
filename は、目標の OS で有効なファイル名となる文字列形式にしなければなりません。ワイルドカードは、使えません。
filename に経路が含まれていない場合、現在のディレクトリで、ファイルを捜します。ファイルが存在しないと、ファイルが作られます。
ポインタは、ファイルの先頭文字に設定されます。
Encoding_type で、ファイルのユニコード
Encodingが使えるので、文字を正しく読むことができます。
Encoding_type を省略すると、デフォルトで「ASCII」コード化が使われます。
現在、リトルエンディアン文字符号化だけが、サポートされます。
- "utf8"
- "utf16"
- "utf32"
- "ascii" (デフォルト)
Lock_type は、ファイルを他のプロセスのためにロックする方法を指定します。下のいずれか 1 つになります。
- Read - ファイルは、読み込み以外で、他のプロセスによって同時に開くことができます。
- Write - ファイルは、書き込み以外で、他のプロセスによって同時に開くことができます。
- Read Write - 同時に、他のプロセスでファイルを開くことができません。(デフォルト)
filenum は、FreeBASIC で有効なファイル番号(1〜255の範囲)で、現在開いている他のどのファイルにも使われていない番号です。
ファイル番号は、以降のファイル操作で使うファイルを、特定します。
空いているファイル番号は、
Freefile 関数を使って見つけることができます。
例:
Dim ff As UByte
Dim randomvar As Integer
Dim name_str As String
Dim age_ubyte As UByte
ff = FreeFile
Input "あなたの名前をキー入力して下さい。"
,name_str
Input "あなたの年令をキー入力してください。",age_ubyte
Open "testfile.txt" For Output As #ff
Write #ff, Int(Rnd(0)*42),name_str,age_ubyte
Close #ff
randomvar=0
name_str=""
age_ubyte=0
Open "testfile.txt" For Input As #ff
Input #ff, randomvar,name_str,age_ubyte
Close #ff
Print "無作為の数字:", randomvar
Print "あなたの名前:" + name_str
Print "あなたの年令:" + Str
(age_ubyte)
'このサンプルで出力されるファイルは、以下のようになります。
'もちろん、行頭コメントの「'」は、無いですよ。
'23,"あなたの名前",19
QBからの違い:
参照: