메뉴 건너뛰기

SAP 한국 커뮤니티



STRING 관련 함수

sapjoy 2006.12.28 22:10 조회 수 : 6743 추천:29

1. String의 길이구하기  
   i = STRLEN( string )

2. CONCATENATE F1 F2 F3 INTO G.
- F1, F2, F3을 G에 넣는다.
- SEPARATED BY <string>
   FI, F2, F3사이에 <string>을 넣는다.
   ex) DATA: FIRST(2)  VALUE 'BAE',
             SECOND(2) VALUE 'BYUNG',
             THIRD(2)  VALUE 'SUNG',
             NAME(20).
       CONCATENATE FIRST SECOND THIRD INTO NAME SEPARATED BY SPACE.
   결과 => 'BAE BYUNG SUNG'

3. SPLIT G AT <string> INTO F1 F2 F3.
- G의 내용을 <string>으로 구분하여 F1, F2, F3에 나누어 넣는다.
   ex) DATA: NAME(20) VALUE ',BAE,BYUNG,SUNG',
             FIRST(2),
             SECOND(2),
             THIRD(2),
             FORTH(2),
             FIFTH(2).
       SPLIT NAME AT ',' INTO FIRST SECOND THIRD FORTH FIFTH.
   결과 => FIRST  = SPACE
           SECOND = 'BAE'
           THIRD  = 'BYUNG'
           FORTH  = 'SUNG'
           FIFTH  = SPACE

4. SHIFT
- 변수에 들어있는 값을 이동한다. 모든 field를 type C로 간주하여 처리하기 때문에 type C, N, D외에는 사용할 때 주의하여야 한다.
- Option : CIRCULAR - 잘려나간 문자를 맨뒤에 놓는다.
            RIGHT - 오른쪽으로 1칸 이동한다.
- 좌측으로 1칸 이동한다.
- SHIFT 문은 PERFORMANCE를 많이 요구하기 때문에 LOOP안에서는 사용을 하지 않는 것이 좋다.(1개의 문자를 이동하는데 5Microseconds 소요)

4-1. SHIFT c.    
ex) DATA: FIRST(10) VALUE 'ABCEDFGHIJ'.
     SHIFT FIRST.
     결과 : FIRST = 'BCDEFGHIJ '.

4-2. SHIFT c BY n PLACES.
- 변수 c를 자리만큼 좌측으로 이동한다. 만일 c의 length보다 n이 크면 c에는  
   blank가 들어간다.

4-3. SHIFT c UP TO c1.
- 변수 c의 내부에 c1이라는 string을 만날 때까지 좌측으로 이동한다.  
- c1이 없으면 아무변화도 일어나지 않는다.  
- 이때 return value SY-SUBRC는 -4이다.

4-4. SHIFT c LEFT DELETING LEADING c1.
    SHIFT c RIGHT DELETING TRAILING c1.
- string c의 첫 번째 혹은 마지막 character가 string c1에 포함되어 있다면  
   해당 character를 삭제하면서 이동한다.  
- 첫 번째 혹은 마지막 character가 중복되어 있다면 다른 character가 나올 때
   까지 이동한다.
- 같은 글자가 없다면 아무런 변화도 일어나지 않는다.

5. CONDENSE <string>.
- string 내부 단어사이의 blank를 1개씩만 남기고 없앤다.
- Option : NO-GAPS - 모든 blank를 없앤다.
- type C를 제외한 다른 field를 포함한 field string을 변환시키지 말 것. 이
   상한 값이 들어갈 수 있다.

6. TRANSLATE c TO UPPER CASE.
  TRANSLATE c TO LOWER CASE.
- 대소문자를 변환하는데 쓰인다.
- 10byte이상의 긴 field를 변환하는 것은 performance에 좋지 않다.

7. 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에 좋지 않기 때문에 많이 쓰지 않는 것이 좋다.

8. REPLACE c1 WITH c2 INTO c3.
- string c3에 있는 c1이라는 string을 c2로 변환시킨다.

9. SEARCH  
9-1. SEARCH c1 FOR c2.
- c1에서 c2라는 string을 찾는다.
- c1의 단어사이는 blanck로 구분한다.
- c2에는 '_' , '*'를 포함하여 사용할 수 있다.
- SY-SUBRC = 0 일 때 SY-EDPOS에 찾은 단어의 위치정보가 들어 있다.

9-2. SEARCH itab FOR c2.
- itab이라는 internal table에서 c2라는 string을 찾는다.
- 나머지는 위와 상동
- SY-SYBRC = 0 일 때 SY-TABIX에는 internal table의 line number가 SY-EDPOS에는 위치정보가 들어 있다.
* e-abap님에 의해서 게시물 이동되었습니다 (2007-11-05 12:45)
번호 제목 글쓴이 날짜 조회 수
42 문자열에서 특정문자값을 기준으로 첫문자를 대문자로 변경 [8] file SAYA 2009.03.09 6274
41 [FUNCTION] - THUSRINFO , 현재 접속되어 있는 SAP 사용자 정보를 가져오는 펑션 [3] 미소 2011.10.13 6319
40 Online프로그램에서 조회조건 다중선택 관련 [6] file COMAN 2008.11.20 6362
39 앞에 위치하는 0(ZERO)없애는 평션 [12] ks 2011.03.16 6534
38 [PS-CJR2] BAPI_COSTACTPLN_POSTPRIMCOST [1] file poce 2007.12.26 6629
37 클래스 특성 리스트 가져 오기 최선 2011.11.08 6639
36 백그라운드 작업 관련 함수(batch job) [3] sapjoy 2007.03.02 6681
» STRING 관련 함수 [3] sapjoy 2006.12.28 6743
34 Object 의 version 및 CTS history 가져오기 [3] 머리를쓰자 2015.03.19 6755
33 STRING_REPLACE 함수 문의 드립니다. [3] marco 2016.04.09 6856
32 DATE_CONVERT_TO_FACTORYDATE : 기준일의 최근 영업일 찾기 [4] file Wise 멘토 2013.11.14 6937
31 CSV 형식으로 파일변환 [2] 정두영 2007.09.12 6996
30 POPUP FUNCTION과 사용 예 [8] file cupycopy2000 2014.08.06 7003
29 Conversion routine 꿀단지 2011.10.11 7052
28 암호화Function [9] Delight 2008.07.07 7056
27 timestamp 시간변환 file sapjoy 2012.11.07 7227
26 call transaction 함수로 새로운 세션생성하기 [9] 아밥 잭 2009.10.28 7271
25 function 모음입니다. [5] 양파링 2007.11.02 7342
24 암호화 function [14] magicsy69 2008.06.03 7351
23 시간계산, time calc, timezone time stamp, [5] sapjoy 2012.02.09 7374