|
안녕하세요 만해 랍니다~
오랜만에 뵙네요
1차 휴가 나와 있는중입니다~
그럼 답변을 드리겠습니다.
BCB의 헬프에서 AnsiString을 입력해서 그 하위 메소드를 검색 하면
ToInt()라는 함수가 있는걸 찾을수 있을 겁니다
이게 바로 AnsiString형 자료를 Int자료형으로 바꾸는 역활을
하는 함수(정확히는 메소드이지요)입니다.
하지만 이것도 약간의 문제가 있지요
밑의 소스를 예를 들꼐요
void __fastcall test()
{
AnsiString S;
S = "10";
AnsiString ExpS;
int i.j;
i = S.ToInt();
// 위의 구문은 아무 이상없이 실행이 됩니다
ExpS="";
j = ExpS.ToInt();
// 위 구문 실행이 Run Time 에러가 나네요
// 그 이유는 ExpS라는 변수값이 아무것도 없는 상태인데
// 말하자면 ExpS의 값은 ""이지요
// 그런데 Int형 값에는 ""값이 없습니다.
// 이 상태에서 Run time "" is not integer value라는 값이 나올껍니다.
// 이와 마찬가지로 AnsiString으로 정의된 변수의 값이 Int형으로
// 변환이 가능한 값이라면 ToInt()함수로 변환이 가능하나
// 예의 경우와 같이 ""거나 영문자가 포함되어 있다면
// 런타임 오류를 일으킵니다
// 해결책은 변환하기전에 변환할려는 값이 합당한것인지 체크하는 루틴을 삽입 하세요
}
좋은 답변이 되었는지 모르겠네요
그럼 이만~
|