copyBytes()

システム関数 VGLib.copyBytes は、あるフィールドを別のフィールドにコピーします。

StrLib.copyStr と同様に、 source と target は、文字型にすることができます。 現在の関数では、source は以下のいずれかの型にすることもできます。
  StrLib.copyBytes(
    target 文字型です  inOut,
    targetSubIndex INT in,
    targetSubLength INT in,
    source BIN、DECIMAL、NUM、NUMC、PACF、または文字型 in,
    sourceSubIndex INT in,
    sourcetSubLength INT in)
target
ターゲット・サブストリングの派生元のフィールドまたはリテラル。
targetSubIndex
target の先頭バイトの値が 1 である 場合に、target の開始バイトを識別する。 この指標には、整数リテラルを使用できます。 あるいは、この指標には、INT 型か、またはそれと同等の、長さが 9 で小数部がない BIN 型として定義された項目を使用できます。
targetSubLength
target から派生する値のバイト数を識別する。 長さは整数リテラルとすることができます。または、長さは、 INT 型か、またはそれと同等の、長さが 9 で小数部がない BIN 型として定義されたフィールドとすることができます。
source
ソース値の派生元のフィールドまたはリテラル。
sourceSubIndex
source の先頭バイトの値が 1 である 場合に、source の値の開始バイトを識別する。 この指標には、整数リテラルを使用できます。 または、この指標には、INT 型、 または INT 型と同等の、長さが 9 で小数部がない BIN 型として定義されたフィールドを使用できます。
sourceSubLength
source から派生する値のバイト数を識別する。 長さは整数リテラルとすることができます。または、長さは、INT 型か、またはそれと同等の、長さが 9 で小数部がない BIN 型として定義された項目とすることができます。

ソースがターゲットよりも長い場合は、ソースが切り捨てられます。source が target よりも短い場合は、source の値にスペースが埋め込まれます (たとえ数値の場合でも)。

定義に関する考慮事項

以下の値が sysVar.errorCode で戻されます。
8
指標が 1 より小さいか、値の長さよりも大きい。
12
長さが 1 より小さい。
20
無効な 2 バイト指標である。DBCHAR ストリングや UNICODE ストリングの指標が、2 バイト文字の中間を指しています。
24
無効な 2 バイトの長さである。DBCS ストリングや UNICODE ストリングの長さを示すバイト数が、奇数になっています (2 バイト文字の長さは常に偶数になります)。

  target = "120056";
  source = "34";
  StrLib.copyBytes(target,3,2,source,1,2);
  // target = "123456"

関連リファレンス
copyStr()
EGL ライブラリー VGLib

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.