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
[55233] Re:AnsiString 와 char * 비교 부탁드립니다.
아제나 [azena] 1624 읽음    2008-11-21 19:14
뭐가 틀리지? 하고 저도 해보니까, 이상 없이 되는데요.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  char *Data = Edit1->Text.c_str();

  int Len = StrLen(Edit1->Text.c_str());

  for( int i=0 ; i<Len ; i++ )
    if( ! ( '0' <= Data[i] && Data[i] <= '9' ) )
    {
      ShowMessage( "숫자만 입력하세요." );
      return;
    }
}

폼에 TEdit 하나 올리고 TButton 하나 올려서 작성한 겁니다.

정상적으로 동작하는데요... 흠....

아마 사용하시는 빌더 버젼의 버그로 보입니다.

저는 터보씨빌더 쓰고 있습니다.

그리고 숫자인지 비교하실 때는 문자열을 숫자로 바꾸는 AnsiString의 맴버함수가 있습니다.

  if( Edit1->Text.ToIntDef(0) != Edit1->Text.ToIntDef(1) )
    ShowMessage( "숫자만 입력하세요." );

이렇게 단 두줄에 해결됩니다.

수고하세요.. 흠...


민간돼지 님이 쓰신 글 :
: 아래와 같이 실행하면 Data값이 제대로 나오는데요
: //////////////////////////////////////////////////////////////////
:     AnsiString TESTData;
:     TESTData = vEditInterval->Text;
:     char *Data = TESTData.c_str();
:
:     int length = StrLen(vEditInterval->Text.c_str());
:
:     for(int i= 0; i<length; i++)
:     {                                                                                                                    -
:         if(!('0'<=Data[i]&&Data[i]<='9'))
:         {
:             MessageDlg("숫자만 입력하세요", mtWarning, TMsgDlgButtons() << mbOK, 0);
:             return;
:         }
:     }
: //////////////////////////////////////////////////////////////////
: 아래와 같이 실행하면 Data값이 이상하게 나오는데 차이를 모르겠습니다.
: /////////////////////////////////////////////////////////////////
:
:     char *Data = vEditInterval->Text.c_str();
:
:     int length = StrLen(vEditInterval->Text.c_str());
:
:     for(int i= 0; i<length; i++)
:     {                                                                                                                    -
:         if(!('0'<=Data[i]&&Data[i]<='9'))
:         {
:             MessageDlg("숫자만 입력하세요", mtWarning, TMsgDlgButtons() << mbOK, 0);
:             return;
:         }
:     }
: /////////////////////////////////////////////////////////////////////////////////////////////////////
:     AnsiString TESTData;                                   //
:     TESTData = vEditInterval->Text;                    //                char *Data = vEditInterval->Text.c_str();
:     char *Data = TESTData.c_str();                    //
: ////////////////////////////////////////////////////////////////////////////////////////////////////
: 초보적인 질문이지만 비교  부탁드리겠습니다.  너무 궁금해서요

+ -

관련 글 리스트
55222 AnsiString 와 char * 비교 부탁드립니다. 민간돼지 1885 2008/11/21
55242     Re:AnsiString 와 char * 비교 부탁드립니다. 김태선 1604 2008/11/24
55250         Re:Re:AnsiString 와 char * 비교 부탁드립니다. 아제나 1550 2008/11/24
55253             Re:Re:Re:AnsiString 와 char * 비교 부탁드립니다. 장성호 1606 2008/11/24
55259                 Re:Re:Re:Re:AnsiString 와 char * 비교 부탁드립니다. 아제나 1819 2008/11/24
55247         Re:Re:AnsiString 와 char * 비교 부탁드립니다. 민간돼지 1261 2008/11/24
55233     Re:AnsiString 와 char * 비교 부탁드립니다. 아제나 1624 2008/11/21
55248         Re:Re:AnsiString 와 char * 비교 부탁드립니다. 민간돼지 1339 2008/11/24
55227     Re:AnsiString 와 char * 비교 부탁드립니다. 장성호 2195 2008/11/21
55228         Re:Re:답변 감사드립니다. 민간돼지 1367 2008/11/21
55223     저는 잘 되는데요. 근데 '-' 이건 뭐에요? 조대현.Clau 1435 2008/11/21
55226         Re:저는 잘 되는데요. 근데 '-' 이건 뭐에요? 민간돼지 1395 2008/11/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.