FreeBASIC マニュアルのトップに戻る

FreeBASIC Freefile

目次→実行時ライブラリー参考→ファイル入出力関連FREEFILE←オリジナル・サイト

FREEFILE 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

空いていて使えるファイル番号を返します。

構文:
declare function Freefile ( ) as long

用法:
result = Freefile

戻り値:
もしあれば、次の利用可能なファイル番号、そうでなければゼロ (0)。

記述:
次の空きファイル番号を、1255 の有効な値として返します。 すでに 255個のファイルが開いている場合は 0 を返します。
この値は、ファイルを Open するために必要な引数です。
Freefile は、プログラマーが、使っているファイル番号の経過を追うことができない複雑なプログラムで、ファイルを開くときに役立ちます。

もはやファイルが必要なくなったとき、必ずファイルを閉じてください。そうしないと、ファイル番号がリークして、プログラムの実行中に 255個のファイル番号を使い切って、新たにファイルを開くことができなくなります。

Freefile は、常に最小の空きファイル番号を返します。Freefile によって返されるファイル番号は、そのファイル番号が Open されるか、またはその番号より小さいファイル番号が Close されるまで変わりません:
- このため、Freefile を、対応する Open の直前に使って、同じファイル番号が返され、他の場所で先に開かれないようにすることを推奨します。
- 他のスレッドと衝突する可能性がある場合、このブレークしない 'Freefile...Open' シーケンスは、コードの重要なセクションと見なす必要があるため、たとえば相互排除(ミューテックスロックを使用)によって保護する必要があります。

例:
'文字列変数を作って、文字を入れます。
Dim buffer As String, f As Long
buffer = "今日は世界! テキスト・ファイルを見てね。Freefile"

' 最初の使えるファイル番号を見つけます
f = FreeFile

'ファイル番号「f」を使って、2進の用法で、"file.txt"というファイルを開きます。
Open "file.txt" For Binary As #f

' ファイル番号「f」を使って、文字列をファイルに置きます。
Put #f, , buffer

' ファイルを閉じます。
Close #f

' プログラムを終了させます。
' (プログラムを実行した後、プログラムと同じフォルダで、"file.txt" の内容を確認して下さい。)

End



複数の Freefile 命令文を使うとき、Freefile は、Open 命令文の直前に使わなければなりません。
ファイルを開いた結果につれて、使えるファイル番号が移るからです。
Dim As Long fr, fs
' 正しい方法:
fr = FreeFile
Open "File1" For Input As #fr

fs = FreeFile
Open "File2" For Input As #fs



上と対照して:
Dim As Long fr, fs
' 間違った方法:
fr = FreeFile
fs = FreeFile '' fs は fr と同じファイル番号を取得している

Open "file1" For Input As #fr
Open "file2" For Input As #fs '' error: すでに開いているファイル番号



プラットホーム差:

QBからの違い:

参照:
ファイル入出力関連に戻る
←リンク元に戻る プログラム開発関連に戻る

ページ歴史:2021-01-10 09:16:56
日本語翻訳:WATANABE Makoto、原文著作者:SysOp

ホームページのトップに戻る

表示-非営利-継承