compareBytes()
vgLib.compareBytes() 시스템 함수는 해당 컨텐츠의 형식과 상관없이 바이트별로 2개의 하위 문자열 컨텐츠를 비교합니다.
vgLib.compareBytes()는 VisualAge® Generator에서 마이그레이션된 코드와의 호환성을 위해 유지보수되는 다수의 함수 중 하나입니다. 새 코드가 이러한 용도로 표준 EGL 연산자를 사용할 수 있습니다.
EGL은 값의 바이트별 2진 비교를 수행합니다. 값의 길이가 동일하지 않으면 해당 값이 숫자인 경우에도 EGL이 더 짧은 값을 공백으로 채웁니다.
구문
vgLib.compareBytes(
var1 HEX inOut,
var1index INT in,
var1SubstrLength INT in,
var2 HEX inOut,
var2Index INT in,
var2SubstrLength INT in )
returns (result INT)
- var1
- 첫 번째 비교 값이 파생되는 값입니다. HEX와 참조 호환 가능한 임의의 값일 수 있습니다.
- var1SubstrIndex
- 첫 번째 바이트의 색인 값이 1이면 var1에서 하위 문자열의 시작 바이트를 식별합니다. 이 색인은 정수 리터럴 또는 변수(INT 또는 BIN(9))일 수 있습니다.
- var1SubstrLength
- var1에서 파생된 하위 문자열의 바이트 수를 식별합니다. 길이는 정수 리터럴 또는 변수(INT 또는 BIN(9))일 수 있습니다.
- var2
- 두 번째 비교 하위 문자열이 파생되는 값입니다. HEX와 참조 호환 가능한 임의의 값일 수 있습니다.
- var2SubstrIndex
- 첫 번째 바이트의 색인 값이 1이면 var2에서 하위 문자열의 시작 바이트를 식별합니다. 이 색인은 정수 리터럴 또는 변수(INT 또는 BIN(9))일 수 있습니다.
- var2SubstrLength
- var2에서 파생되는 하위 문자열의 바이트 수를 식별합니다. 길이는 정수 리터럴 또는 변수(INT 또는 BIN(9))일 수 있습니다.
- result
- 함수에서 리턴된 정수 값(INT 또는 BIN(9))입니다. 함수는
다음과 같은 값을 리턴할 수 있습니다.
- -1
- var1에 기반한 하위 문자열이 var2에 기반한 하위 문자열 미만입니다.
- 0
- var1에 기반한 하위 문자열이 var2에 기반한 하위 문자열과 동등합니다.
- 1
- var1에 기반한 하위 문자열이 var2에 기반한 하위 문자열을 초과합니다.
오류 고려사항
V6 예외 호환성을 사용하는 경우(V6 예외 호환성 사용 참조) 다음 값이
sysVar.errorCode에 리턴됩니다.
- 8
- 1 미만 또는 값 길이 초과 색인입니다.
- 12
- 1 미만의 길이입니다.
- 20
- DBCHAR 또는 UNICODE 문자열의 색인이 2바이트 문자의 중간을 가리킵니다.
- 24
- DBCHAR 또는 UNICODE 문자열의 길이(바이트)가 홀수입니다(2바이트 길이는 항상 짝수여야 함).
예제
다음 예제는 vgLib.compareBytes() 함수를 사용하는 방법을 보여줍니다.
target, source HEX (6); // index must be multiple of 2
result INT;
target = "123456";
source = "34";
result = vgLib.compareBytes(target,2,1,source,1,1); // result = 0