그냥 이게 어디에 쓰일지는 미지수 입니다만 올려봅니다..ㅎ
원래 한글도 CS나 CP처럼 사용할 수 있는 방법이 있을까라고 생각을 했었는데...
결국 저는 트리에 제품명을 ㄱ~ㄷ, ㄹ~ㅂ, ... 처럼 자음으로 묶을때 사용해보았구요,
그냥 지나가다 보시고 더 쉬운 방법 있으면 저한테도 알려주세요. ^-^a
PS. 첨부파일에서는 한글 UNICODE -> HEX 관련 정리해봤습니다.
*&---------------------------------------------------------------------*
*& VARIABLES.
*&---------------------------------------------------------------------*
DATA : LV_HEX(4), LV_CHAR.
DATA : LV_INPUT TYPE STRING,
LV_OUTPUT(2).
*&---------------------------------------------------------------------*
*& 문자열 입력 받기.
*&---------------------------------------------------------------------*
CALL FUNCTION 'POPUP_TO_FILL_COMMAND_LINE'
EXPORTING
POPUPTITLE = '첫단어 자음 분석'
TEXT1 = '원하시는 단어를 입력하세요.'
IMPORTING
COMMAND_LINE = LV_INPUT.
*&---------------------------------------------------------------------*
*& 입력 받은 문자열의 자음 분석하기.
*&---------------------------------------------------------------------*
IF LV_INPUT IS NOT INITIAL.
DATA : LV_CHECK(4), LV_TEMP.
"test DATA.
LV_TEMP = '가'.
FIELD-SYMBOLS <FS> TYPE X.
ASSIGN LV_CHAR TO <FS> CASTING.
LV_CHECK = <FS>.
*-- 입력받은 문자에서 첫번째 단어만 비교합니다.
LV_CHAR = LV_INPUT+0(1).
ASSIGN LV_CHAR TO <FS> CASTING.
LV_HEX = <FS>.
IF LV_CHECK = '00AC'.
SHIFT LV_HEX BY 2 PLACES LEFT CIRCULAR.
ENDIF.
*-- HEX값과 비교합니다.
IF ( 'AC00' <= LV_HEX AND LV_HEX <= 'B097' ) OR LV_HEX EQ '3131' OR LV_HEX EQ '3132'.
LV_OUTPUT = 'ㄱ'.
ELSEIF LV_HEX EQ '3133'.
LV_OUTPUT = 'ㄳ'.
ELSEIF ( 'B098' <= LV_HEX AND LV_HEX <= 'B2E3' ) OR LV_HEX EQ '3134'.
LV_OUTPUT = 'ㄴ'.
ELSEIF LV_HEX EQ '3135'.
LV_OUTPUT = 'ㄵ'.
ELSEIF LV_HEX EQ '3136'.
LV_OUTPUT = 'ㄶ'.
ELSEIF ( 'B2E4' <= LV_HEX AND LV_HEX <= 'B77B' ) OR LV_HEX EQ '3137' OR LV_HEX EQ '3138'.
LV_OUTPUT = 'ㄷ'.
ELSEIF ( 'B77C' <= LV_HEX AND LV_HEX <= 'B9C7' ) OR LV_HEX EQ '3139'.
LV_OUTPUT = 'ㄹ'.
ELSEIF LV_HEX EQ '3140'.
LV_OUTPUT = 'ㄼ'.
ELSEIF ( 'B9C8' <= LV_HEX AND LV_HEX <= 'BC13' ) OR LV_HEX EQ '3141'.
LV_OUTPUT = 'ㅁ'.
ELSEIF ( 'BC14' <= LV_HEX AND LV_HEX <= 'C0AB' ) OR LV_HEX EQ '3142' OR LV_HEX EQ '3143'.
LV_OUTPUT = 'ㅂ'.
ELSEIF LV_HEX EQ '3144'.
LV_OUTPUT = 'ㅄ'.
ELSEIF ( 'C0AC' <= LV_HEX AND LV_HEX <= 'C543' ) OR LV_HEX EQ '3145' OR LV_HEX EQ '3146'.
LV_OUTPUT = 'ㅅ'.
ELSEIF ( 'C544' <= LV_HEX AND LV_HEX <= 'C78F' ) OR LV_HEX EQ '3147'.
LV_OUTPUT = 'ㅇ'.
ELSEIF ( 'C790' <= LV_HEX AND LV_HEX <= 'CC27' ) OR LV_HEX EQ '3148' OR LV_HEX EQ '3149'.
LV_OUTPUT = 'ㅈ'.
ELSEIF ( 'CC28' <= LV_HEX AND LV_HEX <= 'CE73' ) OR LV_HEX EQ '314A'.
LV_OUTPUT = 'ㅊ'.
ELSEIF ( 'CE74' <= LV_HEX AND LV_HEX <= 'D0BF' ) OR LV_HEX EQ '314B'.
LV_OUTPUT = 'ㅋ'.
ELSEIF ( 'D0C0' <= LV_HEX AND LV_HEX <= 'D30B' ) OR LV_HEX EQ '314C'.
LV_OUTPUT = 'ㅌ'.
ELSEIF ( 'D30C' <= LV_HEX AND LV_HEX <= 'D557' ) OR LV_HEX EQ '314D'.
LV_OUTPUT = 'ㅍ'.
ELSEIF ( 'D558' <= LV_HEX AND LV_HEX <= 'D7A3' ) OR LV_HEX EQ '314E'.
LV_OUTPUT = 'ㅎ'.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*& 결과 출력.
*&---------------------------------------------------------------------*
IF LV_OUTPUT IS INITIAL.
WRITE : LV_INPUT, '은 자음이 들어간 단어가 아니네요'.
ELSE.
WRITE : LV_OUTPUT, '로 시작합니다. HEX =', LV_HEX.
ENDIF.
유용한 정보 감사합니다.