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

FreeBASIC OpenCons

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

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

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

コンソールの標準入力(stdin)、標準出力(stdout)の連続データを開き、ファイル操作のように使います。

構文:
Open Cons As [#]filenumber
Open Cons For Input As [#]filenumber
Open Cons For Output As [#]filenumber

用法:
result = Open Cons( [For {Input|Output}[,]] As filenumber )
(または、QBのような構文を使います)
Open Cons [For {Input| Output}] As filenumber

パラメタ:
filenumber
stdinstdout の流れに結びつける、使えるファイル番号。( Freefile で見つけることができます。)

戻り値:
最初の用法で、Open Cons() は、32 bit Long を返します:成功すればゼロ (0) を、そうでなければ、ゼロ以外のエラーコードを返します。

記述:
Open Cons は、読み書き用に、コンソールの stdinstdout 流れを開きます。
file number は、流れに結び付けられ、この番号は、以降のファイル操作で使われます。(例えば Input #
利用できる file number は、Freefile で取得できます。

Input file mode では、stdin 流れを開いて、Line Input # などのファイル読み込み作業を行います。
Output file mode では、stdout 流れを開いて、Print # などのファイル書き出し操作を行います。
file mode を指定しないと、デフォルトで、Output file mode になります。

stdinstdout 流れは、呼び出したプロセスの入出力が、OSコマンドによって転送され(運ばれ)たり、または、Open Pipe で開かれるときに使われます。

ファイル操作で、stdinstdout の両方の流れを開くためには、プロセスで複数の file numbers を使わなければなりません。

Color 「色」や Locate「位置指定」などの通常の画面コマンドは、ファイル番号を受け付けないため、このモードでは機能しません。
TAB キーワードは、指定された列番号に関係なく、常に単純なコンマ (,) として解釈されます (次の出力は、次の 14 桁の境界で行われます)。

Open Cons が返すエラーコードは、次の行で Err を使って確認できます。関数版の Open Cons は、32ビット Long エラーコードを、直接返します。

警告:現在、Open Cons は上記のようには動作しません。
file mode 指定子がないと、実行時エラー1(不正な関数呼び出し)が発生します。
Input file mode 指定子は、入力モードだけをサポートしています。 しかし、Output file mode 指定子は、入力モードと出力モードの両方を、同時にサポートしています。


ランタイム・エラー:
Open Cons は、以下の runtime errors の1つを表示します:

(1) Illegal function call
例:
Dim a As String

Open Cons For Input As #1
Open Cons For Output As #2

Print #2,"Please write something and press ENTER"
Line Input #1,a
Print #2, "You wrote : ";a

Close
Sleep



FreeBASIC の Input (命令文) だと、日本語が文字化けしてしまいます。
Open Cons を使うと実行画面(コンソール)の日本語入力を取得できることを、「魔術師をめざして(年金ロボットをめざして)」の
FreeBASIC の日本語標準入力問題について、で教えていただきました。ここに転載させていただきます。

Dim a As String

Open Cons For Input As #1

Print "何か画面にキー入力して、ENTER を押してください"
Line Input #1,a
Print "貴方の入力 : "; a

Close
Sleep

Dim user_name As String
Dim user_sei As String
Dim user_mei As String

Open Cons For Input As #1
   Print "苗字を漢字でキー入力して下さい: " ;
   Input #1, user_sei
   Print "名前を漢字でキー入力して下さい: " ;
   Input #1, user_mei
Close

user_name = user_sei & user_mei
Print "あなたの姓名: " ; user_name
Sleep


QBからの違い:

参照:

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

ページ歴史:2023-06-24 13:53:30
日本語翻訳:WATANABE Makoto、原文著作者: AntoniGual

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

表示-非営利-継承