2022.07.14 - [프로그래밍/MFC (C++)] - MFC ] stringstream 사용하여 문자열 파싱하기
일전에 CString 타입을 string 타입으로 바꾸고 stringstream을 사용해서 파싱하는 방법에 대한 글을 적었는데 다른 방법도 있다.
1. AfxExtractSubString 을 사용하는 방법
int lineCount;
lineCount = result.Replace('\n',',');
for (int i = 0; i < lineCount; i++)
{
CString tmpID, tmpName, tmpAuthor, tmpPrice, tmpOther;
AfxExtractSubString(tmpID, result, 5 * i + 0, ',');
AfxExtractSubString(tmpName, result, 5 * i + 1, ',');
AfxExtractSubString(tmpAuthor, result, 5 * i + 2, ',');
AfxExtractSubString(tmpPrice, result, 5 * i + 3, ',');
AfxExtractSubString(tmpOther, result, 5 * i + 4, ',');
m_list.InsertItem(i, tmpID);
m_list.SetItem(i, 1, LVIF_TEXT, tmpName, NULL, NULL, NULL, NULL);
m_list.SetItem(i, 2, LVIF_TEXT, tmpAuthor, NULL, NULL, NULL, NULL);
m_list.SetItem(i, 3, LVIF_TEXT, tmpPrice, NULL, NULL, NULL, NULL);
m_list.SetItem(i, 4, LVIF_TEXT, tmpOther, NULL, NULL, NULL, NULL);
}
AfxExtractSubString(분리한 문자열을 담을 변수, 분리할 대상 문자열, 분리할 문자의 위치 인덱스, '분리할 인자');
2. .Left, .Right, .Mid 를 사용하는 방법
CString Left(int nCount) : 문자열의 왼쪽 부터 카운트 만큼 추출
CString Right(int nCount) : 문자열의 오른쪽부터 카운트만큼 역순으로 추출
CString Mid(int nFirst) : 문자열 기준위치부터 마지막까지 추출
CString Mid(int nFirst, int nCount) : 문자열 기준위치부터 카운트 만큼 추출
'프로그래밍 > MFC (C++)' 카테고리의 다른 글
MFC ] 실시간 그래프 그리는 법 Real-Time-Chart (3) | 2022.07.17 |
---|---|
MFC ] 다이얼로그 종료시 함수 호출 순서 OnClose, OnDestory, PostNcDestroy (0) | 2022.07.15 |
MFC ] 리스트 컨트롤 제일 하단으로 내리는 법 (0) | 2022.07.14 |
MFC ] stringstream 사용하여 문자열 파싱하기 (0) | 2022.07.14 |
MFC ] char* -> CString , CString -> char* 변환하기 (0) | 2022.07.14 |