シーケンシャルファイルからデータを読み込んで変数に代入します。
Input # fileNumber , variableList
fileNumber
ファイルを開いたときにファイルに割り当てられた番号です。ファイル番号の前にシャープ記号 (#) を付けなければなりません。
variableList
カンマで区切られた変数のリストです。ファイルから読み込まれたデータは、これらの変数に代入されます。ファイルからのデータとその型は、これらの変数とそのデータ型と一致していなければなりません。
variableList には配列、リスト、ユーザー定義型の変数、またはオブジェクト参照変数を指定できません。個々の配列の要素、リストの要素、ユーザー定義型やユーザー定義クラスのメンバを指定することはできます。
次の表に、データ型に対して Input# ステートメントがどのような文字を読み込むかを示します。
variableList のデータ型 |
Input # の文字の読み方 |
---|---|
数値変数 |
ファイル内の空白でない文字が数値の先頭と仮定されます。次の空白、カンマ、行終端文字で数値指定が終わります。空白行や数値以外の値はゼロに変換されます.。 |
文字列変数 |
ファイル内の空白でない文字が文字列の先頭と解釈されます。次の特別な条件に注意してください。 |
二重引用符 (") で始まっているときは、その文字自体は無視されますが、次の二重引用符までのすべての文字 (カンマ、スペース、改行文字を含む) が文字列変数に読み込まれます。 |
|
最初の文字が二重引用符でない場合は、次の空白、カンマ、行終端文字で文字列指定が終わります。 |
|
空白行は空の文字列 ("") に変換されます。 |
|
タブは空白文字ではありません。 |
|
固定長文字列変数 |
その長さに従って読み込まれます。例えば、変数が String*10 として宣言されていれば、正確に 10 バイトが読み込まれます。 |
Variant 変数 |
ファイル内の空白でない文字がデータの先頭と解釈されます。 |
データによっては、次のように処理されます。 |
|
データが何もない (カンマまたは空白行で区切られている) 場合、EMPTY 値が代入されます。 |
|
リテラルの「#NULL#」の場合、変数に NULL 値が代入されます。 |
|
日付/時刻のリテラルの場合、変数に DataType 7 (Date/Time) が代入されます。 |
|
整数の場合、数値が integer 型の有効な範囲内にあるときは、変数に DataType 2 (integer) が代入されます。数値が Long 型の有効な範囲内にあり、integer の範囲外にあるときは、DataType 3 (Long) が代入されます。それ以外の場合は、DataType 5 (Double) が代入されます。 |
|
数値に小数部分がある場合、変数に DataType 5 (Double) が代入されます。 |
|
上記のどれにも当てはまらないときは、変数に String 型が代入されます。 |
データの読み込み中に EOF (ファイルの終端) に達すると、入力が中断されてエラーとなります。
複数行の文字列 (縦線やカッコを使用して入力する文字列など) には、改行文字を表す「chr(10)」が挿入されます。文字列をファイルに出力 (Print) すると、この改行文字がプラットフォーム固有の改行文字に変換されます。文字列をファイルに書き込む (Write) 場合は、変換が行われません。
レコードに依存するデータを読むには、Get ステートメントでランダムファイルを使用したほうが Input# より簡単で効率的です。レコードに依存するデータ (ランダムファイル) の読み込みには Get ステートメントを使用し、テキストデータ (シーケンシャルファイル) の読み込みには Input # を使用してください。