메뉴 건너뛰기

SAP 한국 커뮤니티

한글 자음 분석해보기.

공백 2011.05.19 12:17 조회 수 : 7257

그냥 이게 어디에 쓰일지는 미지수 입니다만 올려봅니다..ㅎ

원래 한글도 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.

번호 제목 글쓴이 날짜 조회 수
427 입력 필드 입력 중 이력이 지원되지 않는 문제 해결법. [1] file 장용천 2013.09.03 8588
426 zebra printer 상세 사용메뉴얼입니다. 양키 2013.08.26 3743
425 메세지 팝업창 뛰워주는 Function [2] file 양키 2013.08.19 7885
424 Field Catalog 가져오지 못하는문제(REUSE_ALV_FIELDCATALOG_MERGE) [3] 양키 2013.08.16 9453
423 [덤프해결] CX_SY_READ_SRC_LINE_TOO_LONG file 양키 2013.08.16 7786
422 SCN에서 인기있는 Tutorial강좌들 입니다. [1] 양키 2013.08.12 8419
421 새로운 Session을 생성하는 방법 [7] 양키 2013.07.17 4961
420 Popup Function 을 모은 프로그램임니다. [5] file jokang 2013.06.26 4619
419 ABAP&SAP_MEMORY 에 대해 올려봄니다. [5] file 블루보이 2013.06.26 4196
418 ALV TOOLBAR 메뉴 버튼을 올립니다. [6] file 블루보이 2013.06.26 3320
417 TSE05 테이블 유지보수를 통한 프로그램 HEADER정보 자동입력. file paran 2013.05.21 4763
416 ALV Subtotal 맨위에 표기하기 [8] 양키 2013.03.26 5566
415 Area menu 한방에 다운로드 >,.< [10] 배불뚝이용 2013.02.26 8553
414 엑셀에서 '-' 부호 앞으로 옮기기 [18] file MasFI 2013.02.08 8975
413 Abap Dump Top 10 [5] 양키 2013.01.14 15740
412 SELECT-OPTIONS과 PARAMETERS 동적으로 선언하기 [9] file 버미! 2012.12.13 7218
411 외부 명령어 등록(EXTERNAL COMMAND) [2] sapjoy 2012.11.02 5472
410 SCN에 올라온 ADT Tutorials Link 입니다. [4] Wise 멘토 2012.10.12 4903
409 ADT(abap development tool) 설치 방법입니다. [1] Wise 멘토 2012.10.12 10228
408 SAP Netweaver 설치 시스템사양 Tip [1] 양키 2012.09.21 7541