findStr()
vgLib.findStr() 시스템 함수는 문자열에서 하위 문자열의 첫 번째 발생을 검색합니다.
vgLib.findStr()은 이전 버전과의 호환성을 위해 유지보수되는 다수의 함수 중 하나입니다. 새 코드가 이러한 용도로 표준 EGL 연산자를 사용할 수 있습니다.
구문
vgLib.findStr(
source CHAR | DBCHAR | MBCHAR | UNICODE | NUM | HEX in,
sourceSubstringIndex INT inOut,
sourceSubstringLength INT in,
searchString CHAR | DBCHAR | MBCHAR | UNICODE | NUM | HEX in)
returns (result INT)
- source
- 소스 하위 문자열이 파생되는 문자열입니다. 변수 또는 리터럴일 수 있습니다.
- sourceSubstringIndex
- 첫 번째 바이트의 색인 값이 1이면 검색이 시작되는 source의 하위 문자열에 대해 시작 바이트를 식별합니다. 이 색인은 정수 변수여야 합니다(INT 또는 BIN(9)). searchString이 source 하위 문자열 내에 있는 경우 sourceSubstringIndex가 업데이트되어 searchString 위치를 표시합니다.
- sourceStringLength
- source 필드의 바이트 수를 식별합니다. 이 길이는 정수 리터럴 또는 변수(INT 또는 BIN(9))일 수 있습니다.
- searchString
- source 문자열에서 검색될 문자열 변수 또는 리터럴입니다. 공백이 아니거나 널이 아닌 문자가 하나 이상인 경우에 한하여 검색이 시작되기 전에 후미 공백 또는 널이 searchString에서 잘립니다. 그렇지 않으면 searchString이 잘리지 않습니다.
- result
- 다음 정수 값 중 하나입니다.
- -1
- 검색 문자열이 없습니다.
- 0
- 검색 문자열을 찾았습니다.
searchString이 소스 하위 문자열에 있는 경우 sourceSubstringIndex이 해당 위치를 표시하도록 설정됩니다(일치하는 하위 문자열이 시작되는 소스의 바이트). 그렇지 않으면 sourceSubstringIndex가 변경되지 않습니다.
오류 고려사항
V6 예외 호환성을 사용하는 경우(V6 예외 호환성 사용 참조) 다음 값이
sysVar.errorCode에 리턴됩니다.
- 8
- 1 미만 또는 문자열 길이 초과 색인입니다.
- 12
- 1 미만의 길이입니다.
- 20
- 2바이트 색인은 유효하지 않습니다. DBCHAR 또는 UNICODE 문자열의 색인이 2바이트 문자의 중간을 가리킵니다.
- 24
- 2바이트 길이가 유효하지 않습니다. DBCHAR 또는 UNICODE 문자열의 길이(바이트)가 홀수입니다(2바이트 길이는 항상 짝수여야 함).
예제
다음 예제는 source 문자열에서 문자 "34"를 검색합니다.
source CHAR(6);
search CHAR(2);
result, sourceIndex, sourceLength INT;
source = "123456";
sourceIndex = 1;
sourceLength = 6;
search = "34";
result = vgLib.findStr(source,sourceIndex,sourceLength,"34");
// result = 0, sourceIndex = 3