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

C++빌더 Q&A
C++Builder Programming Q&A
[39834] Re:Re:Re:Re:Re:Re:Re:Re:일단 해결;;
2HB [thigon] 1082 읽음    2005-04-14 18:25
중간에 끼어들어봅니다.
문자열의 특정 글자를 지우는 걸 몰라서 이런 식으로 해결했어요 -_-;;

    double Price;
    int nPos = 1; //문자열의 첫번째 , 문자의 위치값
    String sTemp = Edit1->Text; //일단 문자열저장
    String sFr, sDr; //, 문자의 앞과 뒤
    while(nPos != 0) //,문자가 없을때까지
    {
        nPos = sTemp.Pos(","); //,문자검색(없으면 0)
        sFr = sTemp.SubString(1,nPos-1); //sFr에 nPos이전값 저장
        sDr = sTemp.SubString(nPos+1,sTemp.Length()); //sDr 에 이후값 저장
        sTemp = sFr + sDr; //합치기
    }
    Price = StrToFloat(sTemp); //Float형으로 변환
    Edit1->Text=FormatFloat("###,###",Price); //포맷지정
    Edit1->SelStart = Edit1->Text.Length() + 1; //마지막 위치로(이것은 계속 첫번째 자리로 커서가 움직여서)

덧. 찍어보시면 2번씩 도는 경향이 있는데 이건 어쩔수 없씸더 -_-;;; 체인지 이벤트가 텍스트가 바뀌면 바로 생기기 때문에;; 어떻게 바꾸기가 힘들죠.

옥이 님이 쓰신 글 :
: 아 ~~~~~~
: 에러 나는 이유는  FormatFloat("###,###",  값 ) 두번째 들어가는 값이 현재와 같이  StrToFloat 을 해서 그렇습니다.
: 2번째 인자는 int, long, double 값이 들어가야 합니다.
:
: 그런데 지금은 Float으로 변환을 해서 인자값을 주니깐 에러가 나네요..
:
: int, long, double형으로 해 보세요...그럼..
: 이상있으면,, 글 올리세요..그럼.
:
:
:
: 궁금이 님이 쓰신 글 :
: : : : : : : :

OnChange이벤트에서
    Price=StrToFloat(Edit1->Text);
    Edit1->Text=FormatFloat("###,###", Price);
값을 변경해주면 다시한번 OnChange 이벤트를 수행하게 됩니다.
그런데 Edit1->Text값이 콤마가 들어가 있어서 그런가 에러가 발생하네요

: :

아마도 Float형으로 변환이 않되는것 같습니다.

: :

에러메세지를 올려볼게요

: :

보시고 해결 방법 있으시면 도움 부탁드립니다.

: :

너무 감사합니다
 

옥이 님이 쓰신 글 :
: 현재 소스:
:     double Price;
:      if(Edit1->Text.Length() > 3)
:     {
:         Price=StrToFloat(Edit1->Text);
:         Edit1->Text=FormatFloat("###,###,###,###", Price);
:     }
:  변경 후
:     double Price;
:  
:         Price=StrToFloat(Edit1->Text);
:         Edit1->Text=FormatFloat("###,###", Price);

: if 문은 필요가 없습니다. 자동으로 자리수 계산해서 하기 때문에 구지 3자리 이상을 꼼마을 찍으라는 조건 줄 필요
: 없구요.... 그리고 "###,###" 무조건 이 포맷입니다..  9자리든 12자리든 알아서 꼼마 찍습니다.
: 예를 들어 12자리라고 "###,###,###,###" 이렇게 할 필요가 없습니다.
: 그냥 "###,###" 이렇게 하면 됩니다.
:
: //================================================================================
:
: 궁금이 님이 쓰신 글 :
: : 테스트 소스 올려드립니다.
: : 좋은 해결책이 있었으면 좋겠네요
: : 그럼 부탁드립니다.
: :
: : 옥이 님이 쓰신 글 :
: : : 어려운 문제는 아니구요..
: : : 그러면,, 간단하게 Test 소스 해서 올려주세요..
: : : 그럼 제가 해드릴께요...
: : :
: : : 궁금이 님이 쓰신 글 :
: : : : 옥이님 관심 가져 주셔서 감사합니다.
: : : : 그런데 제가 하고자 하는 방법과 좀 차이가 있습니다.
: : : :
: : : : 전 Edit에 값이 입력되면 실시간으로 그값에 맞게 콤마를 찍어주고 싶습니다.
: : : : 옥이님이 적어주신 방법은 값을 모두 넣고 난 후에 하기엔 좋은데 실시간으로
: : : : 처리하기엔 좀 어려운거 같습니다.
: : : :
: : : : 제가 Edit OnChange이벤트에 해당 모듈을 설정해서 해봤는데요
: : : : 쉽지가 않더라구요 ㅜ,.ㅡ
: : : : 이벤트에서 저 모듈을 거치면 커서가 제일 앞으로 이동되서 연속해서 값을 넣기가 힘들어지네요
: : : :
: : : : 혹시 다른 방법이 계시거나 좋은 아이디어 있으시면 조언 부탁드립니다
: : : : 그럼 수고하세요
: : : :
: : : : 옥이 님이 쓰신 글 :
: : : : : 네 알려 드리겠습니다.  ㅋㅋㅋㅋ
: : : : :
: : : : : 예를 들어  test 라는 이름을 가진 edit 가 있다면,, 이렇게 하시면 됩니다.
: : : : :
: : : : : test->Text =  FormatFloat( "###,##0",  원하는 값  )
: : : : :
: : : : : 위와 같이 하시면 됩니다. ###,###0 그대로 써주시고, 2번째 인자에 넣고 싶은 값을 지정하면 됩니다.
: : : : : 단 Int, long, double 자료형 이여야 합니다.
: : : : :
: : : : : ###,### 와 ###,##0 차이점
: : : : :
: : : : : 만약 원하는 값이 아무것도 없으면 때, ###,### 사용하면, 값이 안들어 가지만,
: : : : : ###,##0 을 사용하면,, 만약 값이 없으면,, 디폴트로  0  이 입력 됩니다.
: : : : : 한번 해보세요..ㅋㅋㅋㅋ
: : : : :
: : : : :
: : : : :
: : : : : 궁금이 님이 쓰신 글 :
: : : : : : Edit에 값을 입력하면 자릿수에 맞게 콤마를 넣는 작업을 할려고 합니다.
: : : : : : MaskEdit는 처음부터 콤마가 보이기 때문에 사용하기 난처해서요
: : : : : : 막상 Edit에 콤마를 넣을려고 하니 무지 어렵네요
: : : : : :
: : : : : : 혹시 비슷한 작업을 하셧거나 좋은 의견 있으시면 아낌없는 조언 부탁드립니다.
: : : : : : 부디 여러 고수분들의 많은 관심 부탁드립니다.
: : : : : :
: : : : : : 그럼 수고하세요^^*


+ -

관련 글 리스트
39815 [질문]Edit에 콤마 넣는 방법 궁금이 854 2005/04/13
39839     [답변] 문자열에서 특정 문자를 제거하는 법과 문자 입력 막기 정성훈.해미 3252 2005/04/15
39816     Re:[질문]Edit에 콤마 넣는 방법 옥이 1405 2005/04/13
39823         Re:Re:[질문]Edit에 콤마 넣는 방법 궁금이 1850 2005/04/14
39824             Re:Re:Re:[질문]Edit에 콤마 넣는 방법 옥이 908 2005/04/14
39826                 Re:Re:Re:Re:[질문]Edit에 콤마 넣는 방법(test소스) 궁금이 1010 2005/04/14
39827                     Re:Re:Re:Re:Re:[질문]Edit에 콤마 넣는 방법(test소스) 옥이 1056 2005/04/14
39828                         Re:Re:Re:Re:Re:Re:[질문]Edit에 콤마 넣는 방법(test소스)에러발생 궁금이 924 2005/04/14
39831                             Re:Re:Re:Re:Re:Re:Re:[질문]Edit에 콤마 넣는 방법(test소스)에러발생 옥이 1125 2005/04/14
39834                                 Re:Re:Re:Re:Re:Re:Re:Re:일단 해결;; 2HB 1082 2005/04/14
39838                                     Re:Re:Re:Re:Re:Re:Re:Re:Re:StringReplace 사용하세용 juppie 1521 2005/04/15
39859                                         Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:답변감사합니다 궁금이 873 2005/04/16
39860                                             Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re: 사용법 2HB 1330 2005/04/16
39855                                         StringReplace 가 있었군요 ㅡ.ㅡ 볼레롱 1612 2005/04/15
39835                                     Re:Re:Re:Re:Re:Re:Re:Re:Re:일단 해결;; 감사합니다^^* 궁금이 1197 2005/04/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.