copyBytes()

vgLib.copyBytes() システム関数は、あるサブストリングの内容を、その形式に関係なく、別のサブストリングにバイト単位でコピーします。

vgLib.copyBytes() は、以前のバージョンとの互換性の目的で維持される多くの関数の 1 つです。この意図から、新規のコードでは標準の EGL 演算子を使用する必要があります。

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

構文

  vgLib.copyBytes(
    target HEX inOut,
    targetSubstrIndex INT in,
    targetSubstrLength INT in,
    source HEX inOut,
    sourceSubstrIndex INT in,
    sourcetSubstrLength INT in)
target
ターゲット・サブストリングの派生元の値。 HEX と参照互換性のある任意の値を使用できます。
targetSubstrIndex
先頭バイトの指標値が 1 である場合に、target のサブストリングの開始バイトを識別します。この指標には、整数リテラルまたは変数 (INT または BIN(9)) を使用できます。
targetSubstrLength
target から派生するサブストリングのバイト数を識別する。 この長さには、整数リテラルまたは変数 (INT または BIN(9)) を使用できます。
source
ソース値の派生元のフィールドまたはリテラル。
sourceSubstrIndex
先頭バイトの値が 1 である場合に、source のサブストリングの開始バイトを識別します。指標には、整数リテラルまたは変数 (INT または BIN(9)) を使用できます。
sourceSubstrLength
source から派生するサブストリングのバイト数を識別する。 この長さには、整数リテラルまたは変数 (INT または BIN(9)) を使用できます。

エラーに関する考慮事項

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

次の例は、source ストリングを target の中央にコピーしています。

target HEX (8) = "1200567"; // target = "12005670"
source HEX (4)= "3478"; // index must be multiple of 2
vgLib.copyBytes(target,2,1,source,1,1); // target = "12345670"

フィードバック