# 문자열 중간 추출

원하는 위치에서 문자열을 추출합니다.

##### 블록

##### 텍스트

TARGET = substring(INPUT, STARTPOSITION, COUNT);
1 4 2 3

# | 설명
1 | [Destination Data] 추출된 문자열을 저장할 대상을 설정합니다.
2 | [Start position] 문자열 추출의 시작점을 지정하는 정수 값입니다. 값은 1보다 크거나 같아야 하며 추출 가능한 시작 위치보다 적거나 같아야 합니다.
3 | [Number of characters] 추출할 문자 수를 설정합니다. 값은 1보다 크거나 같아야 하며 추출할 수 있는 문자 수보다 작거나 같아야 합니다. 더블 바이트 문자는 단일 문자로 계산됩니다.
4 | [Source Data] 추출할 문자열이 저장되는 원본 데이터를 설정합니다.

(예)

##### 블록

##### 텍스트

Var4 = substring(Var3,Var5,Var1);

## 작업 예

[Source Data]의 변수 | [Start position] | [Number of characters] | [Destination Data]의 변수 | 설명
대상 문자열 | 최대 바이트 수 | 저장할 추출된 문자열
ABCDE | 2 | 3 | 5 | BCD | -
4 | 3 | 5 | (없음) | [Number of characters]가 검색 가능한 문자 수를 초과하므로 문자열이 저장되지 않습니다. "오퍼레이션 결과" 작업에서 실패로 판단됩니다.
6 | 3 | 5 | (없음) | [Start Position]이 사용 가능한 시작 위치를 초과하므로 문자열이 저장되지 않습니다. "오퍼레이션 결과"에서 실패로 판단됩니다.
0 | 3 | 5 | (없음) | [Start Position]이 1 미만이므로 문자열이 저장되지 않습니다. "오퍼레이션 결과"에서 실패로 판단됩니다.
-1 | 3 | 5 | (없음) | [Start Position]이 1 미만이므로 문자열이 저장되지 않습니다. "오퍼레이션 결과"에서 실패로 판단됩니다.
4 | 0 | 5 | (없음) | [Number of characters]가 1 미만이므로 문자열이 저장되지 않습니다. "오퍼레이션 결과" 작업에서 실패로 판단됩니다.
4 | -1 | 5 | (없음) | [Number of characters]가 1 미만이므로 문자열이 저장되지 않습니다. "오퍼레이션 결과" 작업에서 실패로 판단됩니다.
2.1 | 3 | 5 | BCD | [Start Position]의 소수 부분이 잘립니다.
2 | 3.5 | 5 | BCD | [Number of characters]의 소수점 오른쪽에 있는 값이 삭제됩니다.
ABCDEF | 1 | 6 | 5 | (없음) | 변환된 문자열이 저장할 수 있는 최대 바이트 수를 초과했으므로 문자열이 저장되지 않습니다. "오퍼레이션 결과" 작업에서 실패로 판단됩니다.
AB(0x00)CDE | 2 | 3 | 5 | (없음) | 문자열이 저장되지 않습니다. NULL(0x00)이 있는 경우 문자열이 거기서 종료됩니다. 그 결과, [문자 수]가 검색 가능한 문자 수를 초과합니다. "오퍼레이션 결과" 작업에서 실패로 판단됩니다.
4 | 3 | 5 | (없음) | 문자열이 저장되지 않습니다. NULL(0x00)이 있는 경우 문자열이 거기서 종료됩니다. 그 결과, [Start position]이 사용 가능한 시작 위치를 초과합니다. "오퍼레이션 결과"에서 실패로 판단됩니다.
AあB | 1 | 3 | 5 | AあB | 문자열은 [Number of characters]를 기준으로 저장됩니다. *1
2 | 3 | 5 | (없음) | [Number of characters]가 검색 가능한 문자 수를 초과하므로 문자열이 저장되지 않습니다. "오퍼레이션 결과" 작업에서 실패로 판단됩니다.
2 | 2 | 5 | あB | 문자열은 [Number of characters]를 기준으로 저장됩니다. *1

*1 [Destination Data] 변수의 최대 바이트 수가 검색된 문자열의 크기보다 작으면 작업이 실패합니다. 최대 바이트 수는 [Destination Data] 변수의 인코딩에 따라 달라집니다.