하위 문자열
문자 변수를 참조하는 모든 컨텍스트에서 대신 하위 문자열(해당 변수에 있는 문자의 순차 서브세트)을 참조할 수 있습니다. 예를 들어, myVar 변수의 값이 "ABCD"인 경우 두 번째와 세 번째 문자인 "BC"를 myVar[2:3]으로 참조할 수 있습니다.
또한 대상 하위 문자열이 고정 길이를 갖는 경우 지정 명령문의 왼쪽에 하위 문자열을 지정할 수 있습니다. 소스가 하위 문자열보다 짧은 경우에는 하위 문자열 영역이 공백으로 채워지고 소스 텍스트가 하위 문자열보다 긴 경우에는 잘립니다.
소스 변수의 데이터를 동일한 변수의 하위 문자열에 지정하면(예: myResult[1:5] = myResult) 문제가 발생할 수 있습니다. 이 방법으로 겹치는 스토리지를 사용하는 것은 EGL 디버거와 EGL 생성Java™에서 지원되지만 EGL 생성 COBOL에서는 지원되지 않습니다.
구문

- textVariable
- 문자열 또는 HEX 변수이며 리터럴은 아닙니다. 변수는 시스템 변수 또는 배열 요소입니다. 아래에 설명된 대로 제한 길이 문자열에는 특수한 고려사항이 적용됩니다.
- fromIndex
- 변수에서 발췌할 첫 번째 문자이며 여기서 1은 변수에 있는 첫 번째 문자의 색인입니다. 정수로 해석하는 숫자 표현식을 사용할 수 있지만 표현식에 함수 호출을 포함할 수 없습니다.
- toIndex
- 변수에서 해당되는 마지막 문자입니다. 여기서 1은 다시
문자 변수의 첫 번째 문자를 나타내고 2는 두 번째 문자를
나타내는 식입니다. 정수로 해석하는 숫자 표현식을 사용할 수
있지만 표현식에 함수 호출을 포함할 수 없습니다.
fromIndex가 toIndex보다 큰 경우 예외가 발생합니다.
textVariable이 DBCHAR 또는 UNICODE 유형이 아닌 경우에는 색인 중 하나의 값이 바이트 위치를 나타냅니다. 이 경우 값은 2바이트 문자 위치를 나타냅니다.
textVariable이 문자열(제한된 길이가 아님)인 경우 색인의 값은 1에서 문자열의 길이 사이에 있습니다.
textVariable이 제한 길이 문자열인 경우에는 색인의 값이 1에서 변수 선언에 지정한 길이 사이에 있습니다. 지정된 위치에 문자가 없으면 대상 하위 문자열의 컨텐츠가 대상 유형에 따라 다릅니다. 대상 유형이 STRING인 경우 결과는 빈 문자열이고 그렇지 않으면 대상이 공백으로 채워집니다.
아랍어 또는 히브리어와 같은 양방향 언어에 대해 작업 중인 경우에도 맨 왼쪽 문자부터 계수합니다.
예제
limited string(20);
s string;
limited = "123456789";
s = limited[11:12]; // No error, and value of s is "" (an empty string).
s = limited[8:12]; // No error, and value of s is "89".
limited = s[8:12]; // Error because s has no length limit.
// The last valid position is the one with the last character.
limited string(20) = "123456789";
s string = "abc";
limited[12:14] = s; // no error; value of limited becomes "123456789 abc"
: