SPREAD에서 문자를 숫자로 변환하는 방법과 _ttoi() 함수를 활용한 예제 코드
SPREAD에서 문자를 숫자로 변환하는 방법과 _ttoi() 함수 사용 방법
SPREAD의 특정 CELL의 값을 읽어서 정수로 변환하는 과정이다. SPREAD에 문자로 35가 저장되어 있다고 가정하자. 이 문자를 읽어서 숫자로 변환하려면, 문자를 읽고 변환 과정이 필요한다. 이때 사용하는 것이 _ttoi()이다. 이것은 CString 형이 문자를 int 형으로 변환하는 것이다. 이 과정은 다음과 같다.
- 정수를 저장할 변수를 선언한다. (0 ~ 255까지의 숫자가 있다고 가정할 경우, BYTE 형 변수를 사용한다.)
- VARIANT 형 변수를 선언한다. 이는 SPREAD에 문자를 읽어 들이기 위한 변수 이다.
- VT_BSTR로 문자형이라는 속성을 설정한다.
- 문자를 읽어 들여야 함으로 문자를 저장할 수 있는 변수를 선언한다.
- 문자형 변수를 선언하고 메모리 할당 작업을 진행한다.
- SPREAD의 특정 Cell을 읽어야 함으로 SPREAD 의 Cell를 지정한다. 1 컬럼에 nRow에 해당하는 Cell을 정한다.
- GetText()를 이용하여 특정 Cell의 문자를 읽어들인다.
- 문자형 변수에 35라는 값이 읽혀진다.
- 35라는 문자를 숫자로 변환하는 것이 _ttoi()이다.
- 변환된 값을 원래 호출된 곳으로 return한다.
샘플 예제 코드
BYTE CDispDlg::GetSpreadValue(int nRow)
{
BYTE btRet = 0; ///< BYTE 형 변수 선언 (0 ~ 255)
VARIANT Var; ///< VARIANT 형 변수 선언 (SPREAD Cell 값을 저장)
Var.vt = VT_BSTR; ///< 문자형이라는 속성 설정
CString sRecv; ///< 문자를 저장할 변수 선언
Var.bstrVal = sRecv.AllocSysString(); ///< 저장될 변수 메모리 할당 정의
m_spreadSimTelegram.SetCol(1); ///< SPREAD 에서 읽을 컬럼 선정
m_spreadSimTelegram.SetRow(nRow); ///< SPREAD 에서 읽을 ROW 선정
m_spreadSimTelegram.GetText(1, nRow, &Var); ///< SPREAD의 Cell값 읽기
sRecv = Var; ///< 문자형 변수에 복사
btRet = (BYTE)_ttoi(sRecv); ///< 문자를 숫자로 변환
return btRet; ///< 변환된 숫자를 RETURN
}
{
BYTE btRet = 0; ///< BYTE 형 변수 선언 (0 ~ 255)
VARIANT Var; ///< VARIANT 형 변수 선언 (SPREAD Cell 값을 저장)
Var.vt = VT_BSTR; ///< 문자형이라는 속성 설정
CString sRecv; ///< 문자를 저장할 변수 선언
Var.bstrVal = sRecv.AllocSysString(); ///< 저장될 변수 메모리 할당 정의
m_spreadSimTelegram.SetCol(1); ///< SPREAD 에서 읽을 컬럼 선정
m_spreadSimTelegram.SetRow(nRow); ///< SPREAD 에서 읽을 ROW 선정
m_spreadSimTelegram.GetText(1, nRow, &Var); ///< SPREAD의 Cell값 읽기
sRecv = Var; ///< 문자형 변수에 복사
btRet = (BYTE)_ttoi(sRecv); ///< 문자를 숫자로 변환
return btRet; ///< 변환된 숫자를 RETURN
}