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
[2770] [답변] BJEANS/ int,char등을 값으로 취하는 콤포넌트../프포
만해 [ ] 3729 읽음    2000-01-18 10:08
안녕하세요 만해입니다~

메모 컴포넌트나 컴보박스 컴포넌트 그리고 이디터 컴포넌트에서 글이 저장 되는 부분은

String이라는 변수를 통해 저장되는걸로 알고 있습니다

그리고 String은 AnsiString 변수 입니다.

예를 들면

Memo1->Lines->Strings
ComBox1->Lines->String[]
Edit1->Text

위에 열거된 세게의 컴포넌트의 Strings,String[](뭔지 아시지요?),Text

세개다 AnsiString형 변수 입니다.

그리고 AnsiString형 변수는 헬프를 뒤져봐도 나오듯이

int,float,double,char*형으로 전환하는 함수(정확히는 메소드)가 다 있습니다.

몇개를 예를 들면

int : ToInt();
double : ToDouble();
char*  : c_str();

이렇게 전환하는 메소드가 다 있습니다.
이 메소드를 적극 사용하시고요

이 밑에 제가 올린 답변에도 있듯이 형전환시 전환코자 하는값이

Vallid Value인지 체크 하시고 난후 변환하세요

참고로 하나 더 알려 드리면

AnsiString string;
char*      expstring;

string = "Test";
expstring = string.c_str();

이렇게 되면

expstring에 string의 값인 "Test"가 저장되는게 아니라
string이 가리키는 메모리 번지가 expstring하고 동일하게 됩니다

결국 string하고 expstring은 변수만 틀리지 같은 메모리 영역을 사용하게 됩니다.
이럴경우 string이나 expstring두 변수중 아무거나 한 변수를 변경하면

나머지 변수도 영향을 받게 됩니다

이걸 방지 할려면

strcpy(expstring,string.c_str()); // 이와 같은 식으로

strcpy함수를 이용하면 됩니다.

이 경우에는 expstring과 string는 서로 다른 메모리 영역을 가지게 됨으로써

서로 아무런 영향이 없게 됩니다.

저도 작년쯤에 이거 몰라서 되게 혼났거든요 참고 하세요~

자대 복귀를 앞두고 설에서 만해가~


+ -

관련 글 리스트
2730 [질문] int,char등을 값으로 취하는 콤포넌트../프포 bjeans 3783 2000/01/14
2770     [답변] BJEANS/ int,char등을 값으로 취하는 콤포넌트../프포 만해 3729 2000/01/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.