자주 사용하는 String 조작 명령어
▶ 문자열 길이(STRLEN)
i = STRLEN( string )
▶ 문자열 연결 (CONCATENATE)
CONCATENATE F1 F2 F3 INTO G.
어떤 구분자(Space, Comma ...)로 문자열을 연결하고자 할때 SEPARATED BY 뒤에
구분자를 붙이면 됨.
CONCATENATE F1 F2 F3 INTO G SEPARATED BY SEP.
▶ 문자열 나눔 (SPLIT)
SPLIT G AT SPACE INTO F1 F2 F3.
SPLIT f AT g INTO TABLE <Internal Table>.
AT 뒤의 문자열을 기준으로 String을 나눔.
▶ 문자열 치환 (REPLACE)
STRING = 'ABCDEFGHIJ'.
STR1 = 'CDEF'.
STR2 = 'KLMN'
LEN = 2
전체 문자열 치환
REPLACE <STR1> WITH <STR2> INTO STRING.
STRING : ABCDEFGHIJ --> ABKLMNGHIJ
원하는 길이만큼 치환
REPLACE <STR1> WITH <STR2> INTO STRING LENGTH LEN.
STRING : ABCDEFGHIJ --> ABKLMNEFGH
▶ 대소문자 변환 (TRANSLATE)
TRANSLATE <C> TO UPPER CASE. (대문자)
TRANSLATE <C> TO LOWER CASE. (소문자)
▶ 문자열 이동 (SHIFT)
SHIFT <C> LEFT DELETING LEADING <STR>. (왼쪽 <STR>을 지우고 이동)
SHIFT <C> LEFT DELETING LEADING SAPCE. (왼쪽 Space를 지우고 이동)
SHIFT <C> CIRCULAR / RIGHT / LEFT .
마이너스 부호를 앞자리로 이동하는 예제. ( NUM = ' 1000-' )
SHIFT <NUM> RIGHT CIRCULAR. ( NUM = '- 1000' )
SHIFT <NUM>+1 LEFT DELETING LEADING SPACE. ( NUM = '-1000 ' )
SHIFT <NUM> RIGHT DELETING TRAILING SPACE ( NUM = ' -1000' )
▶ CONDENSE <string>
string 내부 단어사이의 blank를 1개씩만 남기고 없앤다.
Option : NO-GAPS - 모든 blank를 없앤다.
type C를 제외한 다른 field를 포함한 field string을 변환시키지 말 것.
이 상한 값이 들어갈 수 있다.
▶ OVERLAY c1 WITH c2.
c1의 character 중 blank의 자리에 c2의 character가 있다면 blank의 위치에
있는 c2의 character를 넣는다.
ex) DATA: WORK(20) VALUE 'BA B UNG-SU G',
HELP(20) VALUE ' E AYY - NNI'.
OVERLAY WORK WITH HELP.
결과 : WORK = 'BAE BYUNG-SUNG'.
- Performance에 좋지 않기 때문에 많이 쓰지 않는 것이 좋다.
▶ REPLACE c1 WITH c2 INTO c3.
string c3에 있는 c1이라는 string을 c2로 변환시킨다.
▶SEARCH
1. SEARCH c1 FOR c2.
- c1에서 c2라는 string을 찾는다.
- c1의 단어사이는 blanck로 구분한다.
- c2에는 '_' , '*'를 포함하여 사용할 수 있다.
- SY-SUBRC = 0 일 때 SY-EDPOS에 찾은 단어의 위치정보가 들어 있다.
2. SEARCH itab FOR c2.
- itab이라는 internal table에서 c2라는 string을 찾는다.
- 나머지는 위와 상동
- SY-SYBRC = 0 일 때 SY-TABIX에는 internal table의 line number가
SY-EDPOS에는 위치정보가 들어 있다.
댓글 7
-
머리를쓰자
2015.01.13 18:25
-
존닭
2015.01.13 20:23
잘 봤습니다. search 와 같은 find 에 대하여도 추가정리 해주시면 좋겠네요. ^^
-
icarus
2015.01.15 22:19
유용한 정보 감사합니다.
-
루키아
2015.06.24 20:45
자료 감사합니다~~
-
엠엠공유
2015.09.09 19:13
감사 합니다
-
알없낌
2016.06.09 20:05
감사합니다.~
-
Dseph
2017.08.05 01:31
감사합니다.
한번에 정리되어 도움이 많이 되었습니다^^