-
[Data Type] Predefined ABAP Type: Other typesSAP/Abap 2022. 1. 10. 20:59
[Character type]
Type Meaning C 문자, 숫자, 특수문자를 표현 N 숫자(Numeric)를 type c 로 표현 D 날짜를 표현 T 시간을 표현 - Type c 는 데이터 선언시 문자의 길이를 선언해야한다. 미선언시 default(1)값으로 정의된다.
REPORT ZA02_05. DATA : gv_f0, gv_f1 TYPE c, gv_f2(1) TYPE c, gv_f3(2) TYPE c, gv_f4 TYPE c LENGTH 2, gv_f5(5), gv_len TYPE i. MOVE : 'KOREA' TO gv_f0, " MOVE: '='와 동일하게 변수에 데이터를 할당. 'KOREA' TO gv_f1, 'KOREA' TO gv_f2, 'KOREA' TO gv_f3, 'KOREA' TO gv_f4, 'KOREA' TO gv_f5. WRITE :/ gv_f0, / gv_f1, / gv_f2, / gv_f3, / gv_f4, / gv_f5. gv_len = STRLEN( gv_f5 ). " STRLEN 함수: 문자의 길이를 반환 WRITE :/ gv_len.
REPORT ZA02_06. DATA : gv_num1 TYPE i, " 정수형 타입 gv_num2 TYPE n LENGTH 4. " 길이 4의 문자 타입 gv_num1 = 89. WRITE :/ gv_num1. gv_num2 = 89. WRITE :/ gv_num2.
REPORT ZA02_07. DATA : gv_date TYPE d. gv_date = sy-datum. " 현재 날짜 WRITE :/ gv_date. gv_date = gv_date + 3. " 현재 날짜 + 3 => 3일 뒤의 날짜 계산 WRITE :/ gv_date. DATA : gv_time TYPE t. gv_time = sy-uzeit. " 현재 시간 WRITE :/ gv_time. gv_time = gv_time - 60. " 현재 시간 - 60 => 60초 이전의 시간 계산 WRITE :/ gv_time.
[가변길이를 갖는 predefined abap type]
# String type: 실행 시점까지 고정 길이가 정해지지 않아 매우 긴 문자열을 표현할때 사용된다.
- Type c와 달리 Type string사용시 동적 메모리가 할당된다.
- Type string / c의 유용한 명령어
-
명령어 의미 FIND 문자열 내 특정 문자를 찾음 [반환 값: 0(문자 존재)] FIND p IN text REPLACE 문자열 내 특정 문자를 변경 REPLACE g WITH f INTO p TRANSLATE 문자열의 대/소문자를 변경 TRANSLATE c TO LOWER CASE(UPPER CASE) SHIFT 문자열을 왼쪽으로 1칸씩 시프팅 SHIFT c CONDENSE 공백을 제거하고 왼쪽으로 정렬 CONDENSE c OVERLAY 문자열의 빈곳을 덮어씌움 OVERLAY c1 WITH c2 CONCATENATE 문자열을 합침 CONCATENATE f1...fn INTO g SPLIT 문자열을 구분자를 기준으로 분할 SPLIT f AT g INTO h1...hn
-
REPORT ZA02_08. DATA : gv_str TYPE string, gv_chr(4) TYPE c. gv_str = 'ABAP'. gv_chr = 'B'. *WRITE :/ 'gv_str: ', gv_str, * / 'gv_chr: ', gv_chr. FIND gv_chr IN gv_str. " gv_str문자열 안에 gv_chr문자가 있는지 확인 IF sy-subrc EQ 0. " => 문자가 존재하면 sy-subrc는 0 반환 WRITE :/ 'B Found'. ENDIF. gv_str = 'ABAP'. gv_chr = 'BBAP'. REPLACE 'ABAP' WITH gv_chr INTO gv_str. " gv_str문자열 안의 'ABAP'문자를 gv_chr로 변경 WRITE :/ gv_str. gv_str = 'ABAP'. " gv_str문자열을 소문자로 변환 TRANSLATE gv_str TO LOWER CASE. WRITE :/ gv_str. gv_str = 'ABAP'. " gv_str문자열을 왼쪽으로 쉬프팅 SHIFT gv_str. WRITE :/ gv_str. gv_str = 'AB AP'. " gv_str문자열의 공백을 제거 CONDENSE gv_str NO-GAPS. gv_str = ' B P'. " gv_str의 빈곳을 gv_chr로 채움 gv_chr = 'AAAA'. OVERLAY gv_str WITH gv_chr. WRITE :/ gv_str. gv_str = 'AB'. gv_chr = 'AP'. CONCATENATE gv_str gv_chr INTO gv_str. " gv_str과 gv_chr을 합쳐 gv_str에 할당 WRITE :/ gv_str. gv_str = 'AB,AP'. SPLIT gv_str AT ',' INTO gv_str gv_chr. " gv_str을 구분자(,)로 분할하여 gv_str, gv_chr에 할당 WRITE :/ gv_str, gv_chr.
[Single quotation(') VS Grave accent(`)]
Grave accent를 사용하면 문자열내에 포함된 모든 공백(space)를 모두 인식할 수 있다.
REPORT ZA02_00. DATA gv_char(32) TYPE c. gv_char = 'This is a'. CONCATENATE gv_char 'text ' 'end' INTO gv_char SEPARATED BY space. WRITE :/ gv_char. gv_char = 'This is a'. CONCATENATE gv_char `text ` `end` INTO gv_char SEPARATED BY space. WRITE :/ gv_char.
'SAP > Abap' 카테고리의 다른 글
[Data Type] ABAP dictionary's type (0) 2022.01.11 [Data Type] Program's local type (0) 2022.01.11 [Data Type] Predefined ABAP Type: Numeric type (0) 2022.01.10 [Data Type] Abap naming rule (0) 2022.01.10 [Data Type] Data variable & Data type 기본 (0) 2022.01.10