ソート処理、マージ処理、およびコピー処理の再編成フィールドを設定します。
構文
object.RconCmdStr = string
object
オブジェクトへの参照を表すオブジェクト式を指定します。
string
再編成フィールドを記述形式に従って指定します。
stringの記述形式
{ pos.len | slf.len typ } [ { pos.len | slf.len typ } ...]
pos.len
入力レコードの位置と長さを指定します。
posとlenは、ピリオド( . )で区切ります。指定したフィールドが入力レコードの中に存在しない場合はエラーになります。テキストファイル、または可変長レコード形式のファイルの場合は、ファイル内の最小レコード長以下となるようにposとlenを指定します。
pos
再編成フィールドの位置を指定します。
レコードの先頭を0として計算します。入力がテキストファイルの場合は、FieldDefinitionプロパティの値に従って、浮動フィールド、または固定フィールドで指定します。テキストファイル以外の場合は、常に固定フィールドとなります。浮動フィールドはフィールド番号を、固定フィールドはカラム位置を指定します。
len
再編成フィールドの長さを指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れると、指定したフィールド長で処理されます。逆に指定したフィールド長よりも短いフィールドが現れると、実際のフィールド長で処理されます。
slf.len typ
自己規定値を値、長さ、およびデータ形式で指定します。
slfとlenは、ピリオド( . )で区切ります。自己規定値に指定可能なデータ形式と長さについては、2.7.4.4 再編成フィールドの自己規定値に指定可能なデータ形式を参照してください。
slf
自己規定値を指定します。
以下の3つの形式があります。
形式 | 指定方法 | |
---|---|---|
文字列 | '文字列' | 文字列をクォーテーション( ' )で囲みます。 |
16進数 | x16進数 | 先頭にxを置き、16進コードを続けます。 |
10進数 | d10進数 | 先頭にdを置き、10進数を続けます。符号(+、-)を付けることもできます。 |
len
自己規定値の長さを指定します。
typ
自己規定値のデータ形式を指定します。
解説
レコード再編成機能により、入力レコードの構成を変更できます。レコードを再編成する場合は、入力レコードを構成するフィールドを左端から順番に指定します。再編成フィールドの指定方法には、入力レコードからの複写と、自己規定値の設定があります。
入力レコードのフィールドを複写する場合は、再編成フィールドに複写するフィールドの位置と長さを指定します。自己規定値を設定する場合は、設定する値、長さ、およびデータ形式を指定します。フィールドと自己規定値は組み合わせて指定できます。
再編成フィールドに入力レコードのフィールドを指定する場合は、入力レコード内のフィールドを指定してください。テキストファイル、または可変長レコード形式のファイルの場合は、入力ファイル内の最小レコード長以下となるように位置と長さを指定します。
複数の再編成フィールドを指定する場合は、コンマ( , )で区切って指定します。
自己規定値で指定した値とlenで指定した長さが異なるときは、以下に示すように処理します。
自己規定値が文字列の場合、自己規定値で指定した文字列の長さがlenで指定した長さより短いときは、自己規定値を左詰めにして右余白に空白を詰めます。自己規定値で指定した文字列の長さがlenで指定した長さより長い場合は、エラーとなります。
自己規定値が数値、または数字の場合、自己規定値で指定した値をlenとtypで指定したデータ形式と長さに変換して埋め込みます。変換結果がlenを超える場合は、エラーとなります。
注意
レコード再編成機能を使用する場合、KeyCmdStrプロパティ、およびSumCmdStrプロパティで指定するキーフィールド、集約フィールドの位置(pos)、長さ(len)は、レコード再編成後のレコードに対して指定します。
記述例
例
例1) 入力レコードの20バイトめから10バイト、50バイトめから12バイト、30バイトめから22バイトのフィールドを順番に複写し、入力レコードを再構成します。再編成後のレコードの長さは、44バイトになります。テキストファイルの場合は、レコード分離文字が付加されます。テキスト浮動フィールド指定の場合は、さらにフィールド分離文字が付加されます。
19.10,49.12,29.22
例2) レコードの先頭から3バイトの長さで、ASCIIコードの文字列 'abc' を埋め込み、入力レコードの20バイトめから10バイトのフィールドを後に複写して、入力レコードを再構成します。再編成後のレコード長は、13バイトになります。テキストファイルの場合は、レコード分離文字が付加されます。テキスト浮動フィールド指定の場合は、さらにフィールド分離文字が付加されます。
'abc'.3asc,19.10