Input # ステートメント (LotusScript 言語)

シーケンシャルファイルからデータを読み込んで変数に代入します。

構文

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) 場合は、変換が行われません。

注: 改行は、すべてのプラットフォームで chr(10) または chr(13) を意味するわけではありません。改行は、行の終端を示すために使用される文字または文字列です。この文字は、Chr(10) や Chr(13) の場合もあれば、それ以外の場合もあります。これは、改行の実際の値がプラットフォームに依存するためです。
注: Write # ステートメントで書き込まれたシーケンシャルファイルから複数行の文字列を読み込むときは、Line Input ではなく Input を使用してください。

レコードに依存するデータを読むには、Get ステートメントでランダムファイルを使用したほうが Input# より簡単で効率的です。レコードに依存するデータ (ランダムファイル) の読み込みには Get ステートメントを使用し、テキストデータ (シーケンシャルファイル) の読み込みには Input # を使用してください。