C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[306] 숫자를 한글 금액으로 치환해 주는 함수 입니다.
만해 [greenuri] 7393 읽음    2002-01-01 12:05
안녕하세요 만해 입니다.

쩝 이거 허접해서~ 올려도 될런지 모르겠네요

제가 지난해 까지 아르바이트 하면서 델로 만든거 방금 생각이 나서

빌더로 바꿨습니다.


AnsiString __fastcall NumberToHangul ( AnsiString Data )
{
  AnsiString Digit[5]={"","천","백","십",""}; // 여기는 4자리 이내의 자릿수
  AnsiString Carry[6] = {"원","만","억","조","경","해"}; // 여기는 자릿수 들어 가고요
  AnsiString OutData="";
  AnsiString SData="";

  for ( ; (Data.Length() %4) ;)
    Data = "0" + Data;  // 4배수 만큼 자릿수가 안되면 4배수 만큼 앞에다 0을 넣습니다.

  for (int i=0; Data.Length() >= 4 ;i++ )
    {
      AnsiString temp = Data.SubString(Data.Length()-3,4);
      Data = Data.Delete(Data.Length()-3,4);
      for ( int j = 1 ; j < 5 ; j++ )
        {
          switch ( StrToInt(temp[j]) )
          {
            case 0 : OutData = OutData + ""  ;break;
            case 1 : OutData = OutData + "일"+ Digit[j];break;
            case 2 : OutData = OutData + "이"+ Digit[j];break;
            case 3 : OutData = OutData + "삼"+ Digit[j];break;
            case 4 : OutData = OutData + "사"+ Digit[j];break;
            case 5 : OutData = OutData + "오"+ Digit[j];break;
            case 6 : OutData = OutData + "육"+ Digit[j];break;
            case 7 : OutData = OutData + "칠"+ Digit[j];break;
            case 8 : OutData = OutData + "팔"+ Digit[j];break;
            case 9 : OutData = OutData + "구"+ Digit[j];break;
          }
        }
      if (OutData == "")
        SData = OutData + SData;
      else
        SData = OutData + Carry[i] + SData;

      OutData = "";
    }
  return SData;
}

이 소스는요 조금 단순한건데

Data를 가져와서 끝에서부터 4자리씩 읽어 들여서

그 네자리를 한글로 바꾼후에 자릿수를 더하고

그담의 4자리 가져와서 한글로 바꾼후 접번에 바꾼곳 앞에다 저장합니다.

그냥 단순해요~ 도움이 될지 모르겠네요

그럼 이만

참 참고로 해 이상의 자릿수 넣어 실려면요

  AnsiString Carry[6] = {"원","만","억","조","경","해"}; // 여기는 자릿수 들어 가고요

위의 소스에서 배열을 늘리시고요 해 뒤에 해 다음 단위를 나타내는 한글을 입력 하면 됩니다.

그럼 참고 하세요


+ -

관련 글 리스트
306 숫자를 한글 금액으로 치환해 주는 함수 입니다. 만해 7393 2002/01/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.