for 루프로 문자열을 뒤에서 부터 한개씩 숫자인지 확인하면서
숫자가 발견되면 문자가 시작되는 위치부터 잘라서 반환하고
루프를 종료 하는 함수입니다.
단위가 없을경우는 empty를 반환합니다.
포인트는 TryStrToInt 입니다.
아래와 같은 문제점이 있는데 이런건 따로 예외처리 하셔야됩니다.
1. 유리수(?)의 소수점 아래가 생략되어 있는경우. 예)10.m-> .m
2. 단위에 숫자가 있는경우. 예) 10m^2 -> empty
3. 단위만 있을경우. 예) m -> empty
UnicodeString __fastcall TForm1::GetUnit(UnicodeString str)
{
for (int i = 0; i < str.Length(); i++) {
UnicodeString tmpstr=str.SubString(str.Length()-i,1);
int tmpint;
if (TryStrToInt(tmpstr,tmpint)) {
return str.SubString(str.Length()-i+1,str.Length()).Trim();
}
}
}
앱돌이 님이 쓰신 글 :
: 안녕하세요 c++왕초보입니다.
:
: 134mv,134nf,24K등의 숫자와 문자가 혼합되어 있는stringgrid에 뿌려진값을 숫자를 버리고 단위만
:
: 받아오고 싶은대 어떻게해야할지 전혀 감이 오질않습니다. 단위도 많아서 일일히 다 적자니 손도 많이갈 것 같구요
:
: 뭔가 획기적인 방법없을까요...
|