|
안녕하세요 만해입니다~
메모 컴포넌트나 컴보박스 컴포넌트 그리고 이디터 컴포넌트에서 글이 저장 되는 부분은
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는 서로 다른 메모리 영역을 가지게 됨으로써
서로 아무런 영향이 없게 됩니다.
저도 작년쯤에 이거 몰라서 되게 혼났거든요 참고 하세요~
자대 복귀를 앞두고 설에서 만해가~
|