메뉴 건너뛰기

SAP 한국 커뮤니티

한글 자음 분석해보기.

공백 2011.05.19 12:17 조회 수 : 7261

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

원래 한글도 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 SAP Netweaver 설치 시스템사양 Tip [1] 양키 2012.09.21 7549
426 문자열에서 특정문자(열) 변경 및 삭제 [9] Delight 2008.04.23 7520
425 BAPI_DELIVERYPROCESSING_EXEC 납품문서 만들때 사용하세요 노름마치 2007.10.29 7518
424 SAP 버퍼를 다시 설정하는 방법 Wise 멘토 2013.10.04 7500
423 RFC를 이용해서 SAP에 로그온할 때 Language키 주의 [9] 꿀단지 2011.10.11 7484
422 assign 구문 [2] sapjoy 2006.12.04 7477
421 Mass download version 1.4.4 [4] file 노름마치 2009.08.20 7456
420 CBO 테이블 데이터 변경 프로그램 [10] sapjoy 2008.03.28 7440
419 abap 전반적인 한글번역 [14] 열공아밥 2009.12.20 7417
418 <img src=d.gif>Abap 리포트 소스 스캔프로그램 소개[추천:e-abap] [12] file 양키 2010.07.13 7408
417 ALV 버퍼 CLEAR 프로그램 [10] sapjoy 2008.09.25 7408
416 ABAP 교육 [9] file 밤의화신 2013.09.11 7397
415 릴리즈된 cts 복구 하기 Program : RDDIT076 [2] sapjoy 2014.11.10 7356
414 ASP.NET과 wsdl로 연동시 광돈 2010.12.17 7341
413 [Function]조직구조 팝업창을 뛰워보자 [5] file 양키 2010.09.28 7298
412 ABAP 교육 [12] file 밤의화신 2013.09.11 7294
411 ABAP 교육 [6] file 밤의화신 2013.09.11 7280
410 금액을 한글로 변환하기 [3] 김관현 2007.03.19 7265
409 sap 화면 웹(web)으로 띄우기(ITS, SAPGUI HTML) [4] file sapjoy 2014.11.14 7262
408 SELECT-OPTIONS과 PARAMETERS 동적으로 선언하기 [9] file 버미! 2012.12.13 7261