PL/I 可変長ストリング・タイプの編集規則
PL/I VARYING 属性 (VC、VD、および VB) を持つフィールドは、File Manager 処理用に 2 つのフィールドに分離されます。最初のフィールドは現行ストリングの長さフィールド (File Manager の見出しで「len」と命名される) で、その後に、2 番目のフィールドが続きます。2 番目のフィールドには、表示されるストリング・データが含まれます。ストリング・タイプごとに、FIXED BIN(15) フィールドとして表示される現行のストリング長があります。
可変ストリング用に File Manager によって作成された分離済みの「len」フィールドでは、データの内容によって「len」値が決まるため、作成属性は必要ありません。
編集モードでは、データ・ストリング・フィールドの最大表示幅は、現行の長さまでの無保護文字、および非表示モードの現行の長さを超える保護域に分割されます。VD ストリングには、そのストリングに対して宣言された 2 バイト値ごとに 2 つの文字位置、および保護されていない現行の長さの値ごとに 2 つの文字位置が必要です。BIT ストリングは、そのストリング内のビット値ごとに「Edit (編集)」パネル内に 1 つの文字位置を必要とします。VD および VB タイプの場合、現行ストリング長を超える文字位置は、保護された非表示モードです。
これらのストリング・タイプの最大ストリング長は、構造内に存在する REFER 変数名を指定することにより、定数値または可変値として宣言できます。最大ストリング長の REFER 変数を使用してレコードが宣言された場合、該当するフィールドとそれに続くフィールドについて、開始位置およびデータ・ストリング表示幅はレコードごとに異なる場合があります。また、REFER 変数は、次元配列として宣言された変数の境界またはエクステントを定義する構造の中にあることがあります。
VARYING フィールドの編集処理規則は、以下のとおりです。
- 可変ストリングの長さフィールドは、0 から、そのレコード内のフィールドに対して宣言された最大長までの範囲内の値に変更することができます。
- この長さが短くされると、データ・ストリングは新規の長さに切り捨てられ、残りの表示位置は入力から保護されます。
- この長さが長くされると、新規の現行の長さに合わせて初期化処理が行われます。
- REFER 値を使用するストリング変数の最大長を変更するには、まず REFER 値を変更してから、ENTER キーを押して最大ストリング長をリセットします。REFER 値によって設定される新規の最大長がデータ・ストリングの現行長よりも短い場合には、データ・ストリングは切り捨てられ、現行長はエラーのあるフィールドとして強調表示されます。