LOTUSSCRIPT 言語


Put ステートメント

変数からのデータをバイナリファイルまたはランダムファイルに書き込みます。

構文

Put [#] fileNumber , [ recordNumber ] , variableName

要素

fileNumber


recordNumber
variableName
使用法

ファイル内のバイトまたはレコードの最初の位置は常に 1 です。書き込み処理のたびに、ファイル内の位置の値は次のように増加します。


variableName がファイル内のレコード長より短いと、Put はファイル内のレコードの残りの部分に存在するデータを上書きまたは削除しません。

次の表は、各データ型に対する Put ステートメントの動作を示しています。

variableName のデータ型Put ステートメントの動作
Variant 型Put ステートメントは値自体の前に最初の 2 バイトとして DataType を書き込みます。

DataType が EMPTY か NULL なら、それ以上何も書き込みません。

DataType が数値なら、Put ステートメントはその DataType に適したデータのバイト数分を書き込みます。

Byte 型: 1 バイト

Boolean 型: 2 バイト

Integer 型: 2 バイト

Long 型: 4 バイト

Single 型: 4 バイト

Double 型: 8 バイト

Currency 型: 8 バイト

Date/Time 型: 8 バイト

固定長 String 型Put ステートメントは指定した文字数分を書き込みます。たとえば、変数を String * 10 として宣言すると、正確に 10 文字を書き込みます。
可変長 String 型Put ステートメントの動作は、使用しているファイルの種類によって異なります。

ランダムファイル:最初の 2 バイトに文字列の長さを書き込みます。次に、その長さで指定された文字数を書き込みます。variableName を初期化していないと、Put ステートメントは長さゼロの文字列を書き込みます。

variableName がレコードより長い場合は、「不正なレコード長」エラーが発生します。variableName がレコード長より短いと、レコードの残りの部分は残されます。

バイナリファイル:その時点で variableName に保存されている文字列の長さと等しいバイト数がファイルに書き込まれます。variableName を初期化していないと、ファイルには何もデータが書き込まれません。バイナリファイルの場合、データはレコード長に関係なく書き込まれるため、注意が必要です。

ユーザー定義のデータ型Put ステートメントはユーザー定義型のすべてのメンバを書き込むのに必要なバイト数の合計分を書き込みます。メンバに動的配列、リスト、オブジェクトを含めることはできません。

Put が String 型のデータを書き出すときに、文字は常に Unicode 文字セットで書き込まれます。

メモ LotusScript 4 では 64K より長い文字列が可能ですが、GET および PUT ステートメントを使用して読み書きできる文字列の長さにはまだ制限があります。長い文字列を処理するファイルタイプの唯一の組み合わせは、バイナリファイルと可変長文字列です。固定長文字列、Variant 型の変数内の文字列、およびランダムファイルは 64K を超える文字列を処理しません。これは、それらに、文字列の長さを含む 2 バイトのヘッダーがあるためです。2 バイトでは 64K を超える長さを表せません。


関連項目