Q&A

  • 질문]숫자로 들어온 데이타 한글로 표현하기?
아래와 같이 형태의 데이타를 한글로 변환하고 싶습니다..
숫자로 들어온 데이타를 한글로 표현하고 싶은데 고수님들  알려주시면 감사하겠습니다..
꼭 좀 부탁드립니다....

[한글구조]
초성-01(ㄱ),02(ㄴ),03(ㄷ)-------------
중성-01(ㅏ),02(ㅐ),03(ㅑ)-------------
종성-01(ㄱ),02(ㄴ),03(ㄷ)-------------

[input data-숫자로 들어옴]
0001 010101
0002 020202
0003 030303

[output data-한글로 표현]
0001 각
0002 낸
0003
1  COMMENTS
  • Profile
    홍성락 2009.06.09 20:44
    김영대님의 홈피( http://www.howto.pe.kr )에 보시면 참조자료가 있습니다.(Delphi Tip&Trick 페이지에서"한글" 또는 "음절" 으로 검색해보세요)
    target=_blank>http://www.howto.pe.kr/zboard/zboard.php?id=delphi_tiptrick&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&keyword=음절&select_arrange=headnum&desc=asc&no=932


    1. 일단, 중요한건
    초성 19개(ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ)
    중성 21개(ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣ)
    종성 28개('' ㄱㄲㄳㄴㄵㄶㄷㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅄㅅㅆㅇㅈㅊㅋㅌㅍㅎ)
    중에서 종성은 맨앞에 공백입니다(받침없는경우)

    2. 이처럼 순서가 정해 있으나 사용자가 정한 순서(번호)를 할려면, 김영대님 소스에서 순번을 찾는것을 추가하면 될거 같습니다

    3. 찾은 초중종성을 한글로 만드는 소스만 보면
    var
    iChoseong, iJungseong, iJongseong: WORD;
    uSyllable: PWideChar;
    begin
    try
    iChoseong := 1;
    iJungseong := 1;
    iJongseong := 1;
    // 유니코드 음절을 저장할 버퍼(double-byte)
    uSyllable := GlobalAllocPtr(GHND, 4);
    // 조합된 음절의 유니코드
    WORD(uSyllable^) := $AC00 + (iChoseong* 21*28) + (iJungseong* 28) + (iJongseong);
    Showmessage(uSyllable); // 문자로 변환

    finally
    if uSyllable <> nil then
    GlobalFreePtr(uSyllable);
    end;

    end;