CString 변수에서 문자열의 형식 검사는 어떻게 하나요?
글쓴이: 나는오리 / 작성시간: 화, 2005/11/15 - 9:20오전
CString(String)형의 변수 str을 선언했습니다.
이 str에 데이터가 매초 들어온다고 가정했을 때
내가 원하는 형식의 데이터인지 검사를 하려 합니다.
어떻게 해야 하나요?
참고로 구분자가있는 데이터입니다.
"ABC|DEF|123|456|@#$|%^$##@|abcdefg|"
아울러 CString(String)를 char[]로 바로 변환 가능한가요?
글쓰고보니 더 생각나네요. CString -> int, float, double 로의 변환도 가능할까요?
Forums:
[code:1]loop{ 변수 = 구분자위치의
[quote]내가 원하는 형식의 데이터인지 검사를 하려 합니다.어떻게
if 문으로 검사하면 되지요.
LPCTSTR 로 캐스팅 됩니다.
char[] 로 할려면 복사하던가 하면 됩니다.
atoi, atof, sscanf 쓰면 됩니다.
[quote="hyperhidrosis"][quote]내가 원하는 형식의
제가 원하는건 한페이지에서 여러가지 형식의 라인들중 제가 원하는 데이터가 있는 라인만 골라내서 일처리를 하는건데 위와 같이 했습니다. ^^;
근데 제가 원하는 만큼의 결과가 안나와서 (LPSTR)(LPCTSTR)로 변환하는건 포기했습니다. ㅠ.ㅠ;
GetBuffer로 하는 방법이있다던데 그쪽은 별로 내키질 않네요.
Re: CString 변수에서 문자열의 형식 검사는 어떻게 하나요?
MFC의 CString을 말씀하시는 건가요?
그렇다면 CString::Tokenize()를 쓰면 됩니다.
MFC는 유니코드나 MBCS도 고려하기 때문에 char 대신 TCHAR를 씁니다만,
이들을 쓰지 않는다면 const char*로 변환하는 것이 가능합니다. (char[]가 아님)
const char* p = str;
const char*로 변환한 다음 atoi()나 atof()를 쓰면 됩니다.
MBCS나 유니코드를 고려한 _tstoi(), _tstof() 등도 있으니 참고하세요.
Re: CString 변수에서 문자열의 형식 검사는 어떻게 하나요?
msdn 6.0에서는 안보이네요 ㅡ.,ㅡ;
그래서 여기서 찾아봤습니다.
아래는 예제입니다.
쩝...처음부터 알았더라면 이걸로 했으면 좋았을텐데...
이와 비슷한 함수가 또 있는지 찾아봐야겠네요.
제가 필요한건 |사이의 값이 필요하지만 필요없는 부분도 있지요. ㅡ.,ㅡ;
그래서 일일이 STR.MID()로 찾았지요. ㅠ.ㅠ
저는 역시 노가다 과인가 봅니다. ㅡ.,ㅡ;;;
[quote]msdn 6.0에서는 안보이네요 ㅡ.,ㅡ; 그래서 여기서
참고 하세요. vc6에서 최신 msdn을 사용하는 법입니다.
http://www.codeproject.com/macro/VSNetHelp.asp
높이 날다 떨어지면.
아푸다 ㅡ,.ㅡ
[quote="doldori"]MFC의 CString을 말씀하시는 건가요
이게 vc6에 들어 있는 MFC에서 되던가요?
지금 실행해보니 에러가 나는 군요.
선언부에서 찾아 보니 strtoken관련 함수는 보이지 않는데요 :shock:
VC6 라면 CString::Tokenize()보다는 CString::Find() 를 써야 할거 같은데요.
높이 날다 떨어지면.
아푸다 ㅡ,.ㅡ
[quote="비행소년"][quote="doldori"]MFC의 CStr
흠... 6.0에는 없나 보군요. 몰랐습니다. ^^;
[quote="비행소년"][quote="doldori"]MFC의 CStr
이지 구현한 소스를 바꿀만큼 성실하지 않거든요. -_-;
역시 vs6에는 MSND6을 설치하고 사용해야하는군요.
TOKENIZE()는 7.0버전부터 지원하나보네요.
[quote] MSDN Home > MSDN Library &g
VC6.0은 카테고리가
strtok 쓰세요
strtok 쓰세요
[quote="hyperhidrosis"]strtok 쓰세요[/quote
CString형을 몇번이나 형변환해서 strtok쓰는것보단 그냥 Mid()로 부분부분 뜯어내서 비교하는게 더 나아보이더군요.
그래서 저~위에처럼 했습니다. ^^;
댓글 달기