Data Conversions
By VGirish | 28 Jun 2002
These are a few samples of data conversions which you can use for a quick reference
Introduction
Here are a few data conversions with small examples :-
Decimal Conversions
Decimal To Hex
Collapse
// Use _itoa( ) function and set radix to 16. char hexstring[10]; int number = 30; itoa( number, hexstring, 16); // In hexstring is 1e.
Hex To Decimal
Collapse
// You can use strtol function and you can specify base. char * hexstring= "ABCDEF"; char * p; int number = strtol(hexstring, &p,16); // A function that does this bool HexToDecimal (char* HexNumber, int& Number) { char* pStopString; Number = strtol (HexNumber, &pStopString, 16); return (bool)(Number != LONG_MAX); }
Decimal to time
Collapse
char *DecToTime(float fTime, char *szTime) { int nHrs, nMin, nSec; fTime *= 3600; nHrs = (int)fTime / 3600; nMin = (int)(fTime - nHrs * 3600) / 60; nSec = (int)(fTime - nHrs * 3600 - nMin * 60); wsprintf(szTime, "%02d.%02d.%02d Hrs.Min.Sec.", nHrs, nMin, nSec); return szTime; }
String Conversions
String to Hex
Collapse
sscanf(string, %04X, &your_word16); // where string = your string and // 04 = length of your string and X = hex
Hex to CString
Collapse
CString Str; unsigned char Write_Buff[1]; Write_Buff[0] = 0x01; Str.Format("0x0%x",Write_Buff[0]);
COleVariant to CString
Collapse
CString strTemp; COleVariant Var; Var = "FirstName"; strTemp = Var.bstrVal; AfxMessageBox(strTemp);
CString to char pointer
Collapse
CString MyString = "ABCDEF"; char * szMyString = (char *) (LPCTSTR) MyString;
Collapse
char *pBuffer = new char[1024]; CString strBuf = "Test"; pBuffer = strBuf.GetBuffer(sizeof(pBuffer));
char pointer to CString
Collapse
char * mystring = "12345"; CString string = mystring;
Double to CString including the fractional part
Collapse
CString strValue,strInt, strDecimal; int decimal,sign; double dValue = 4.125; strValue = _fcvt(dValue,6,&decimal,&sign); // Now decimal contains 1 because there is // only one digit before the . strInt = strValue.Left(decimal); // strInt contains 4 strDecimal = strValue.Mid(decimal); // strDecimal contains 125 CString strFinalVal; strFinalVal.Format("%s.%s",strInt,strDecimal); // strFinalVal contains 4.125
Double To CString
Collapse
CString strValue; int decimal,sign; double dValue = 123456789101112; strValue = _ecvt(dValue,15,&decimal,&sign);
CString To Double
Collapse
strValue = "121110987654321"; dValue = atof(strValue);
CString to LPCSTR
Collapse
CString str1 = _T("My String"); int nLen = str1.GetLength(); LPCSTR lpszBuf = str1.GetBuffer(nLen); // here do something with lpszBuf........... str1.ReleaseBuffer();
CString to LPSTR
Collapse
CString str = _T("My String"); int nLen = str.GetLength(); LPTSTR lpszBuf = str.GetBuffer(nLen); // here do something with lpszBuf........... str.ReleaseBuffer();
CString to WCHAR*
Collapse
CString str = "A string here" ; LPWSTR lpszW = new WCHAR[255]; LPTSTR lpStr = str.GetBuffer( str.GetLength() ); int nLen = MultiByteToWideChar(CP_ACP, 0,lpStr, -1, NULL, NULL); MultiByteToWideChar(CP_ACP, 0, lpStr, -1, lpszW, nLen); AFunctionUsesWCHAR( lpszW ); delete[] lpszW;
LPTSTR to LPWSTR
Collapse
int nLen = MultiByteToWideChar(CP_ACP, 0, lptStr, -1, NULL, NULL); MultiByteToWideChar(CP_ACP, 0, lptStr, -1, lpwStr, nLen);
string to BSTR
Collapse
string ss = "Girish"; BSTR _bstr_home = A2BSTR(ss.c_str());
CString to BSTR
Collapse
CString str = "whatever" ; BSTR resultsString = str.AllocSysString();
_bstr_t to CString
Collapse
#include <ANSIAPI.H> #include <comdef.h> _bstr_t bsText("Hai Bayram"); CString strName; W2A(bsText, strName.GetBuffer(256), 256); strName.ReleaseBuffer(); AfxMessageBox(strName); char szFileName[256]; GetModuleFileName(NULL,szFileName,256); AfxMessageBox(szFileName);
Character arrays
Char array to integer
Collapse
char MyArray[20]; int nValue; nValue = atoi(MyArray);
Char array to float
Collapse
char MyArray[20]; float fValue; fValue = atof(MyArray);
Char Pointer to double
Collapse
char *str = " -343.23 "; double dVal; dVal = atof( str );
Char Pointer to integer
Collapse
char *str = " -343.23 "; int iVal; iVal = atoi( str );
Char Pointer to long
Collapse
char *str = "99999"; long lVal; lVal = atol( str );
Char* to BSTR
Collapse
char * p = "whatever"; _bstr_t bstr = p;
Float to WORD and Vice Versa
Collapse
float fVar; WORD wVar; fVar = 247.346; wVar = (WORD)fVar; //Converting from float to WORD. //The value in wVar would be 247 wVar = 247; fVar = (float)fVar; //Converting from WORD to float. //The value in fVar would be 247.00
Conclusion
All luck and have a great time. I've checked most of the code above, but if I've been wrong somewhere, I'd like to know about it so that I can modify it. Thank you.
License
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
즐점하세요!
답글삭제안낚하세요~
답글삭제