PART ONE :- DECIMAL CONVERSIONS
Decimal To Hexa :-
------------------
Use _itoa( ) function and set radix to
16.
char hexstring[
10];
int number =
30;
itoa( number, hexstring,
16);
In hexstring is 1e.
Hexa To Decimal :-
------------------
a)
You can use strtol function and you can specify base.
char * hexstring=
"ABCDEF";
char * p;
int number = strtol(hexstring, &p,
16);
b)
bool HexToDecimal (
char* HexNumber,
int& Number)
{
char* pStopString;
Number = strtol (HexNumber, &pStopString,
16);
return (
bool)(Number != LONG_MAX);
}
Decimal to Time :-
------------------
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;
}
PART TWO :- STRING CONVERSIONS
String to Hexa :-
-----------------
sscanf(string, %04X, &your_word16);
// where string = your string and 04 = length of your string and X = hex
Hex to CString
---------------
CString Str;
unsigned
char Write_Buff[
1
];
Write_Buff[
0] =
0x01;
Str.Format(
"0x0%x",Write_Buff[
0]);
COleVariant to CString
----------------------
CString strTemp;
COleVariant Var;
Var =
"FirstName";
strTemp = Var.bstrVal;
AfxMessageBox(strTemp);
CString to Char Pointer
-----------------------
a)
CString MyString =
"ABCDEF";
char * szMyString = (
char *) (LPCTSTR) MyString;
b)
char *pBuffer =
new
char[
1024];
CString strBuf =
"Test";
pBuffer = strBuf.GetBuffer(
sizeof(pBuffer));
Char Pointer to CString
-----------------------
char * mystring =
"12345";
CString string = mystring;
Double to CString including the fractional part :-
--------------------------------------------------
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 :-
--------------------
CString strValue;
int decimal,sign;
double
dValue =
123456789101112;
strValue = _ecvt(dValue,
15,&decimal,&sign);
// Converting double to string
CString To Double :-
---------------------
strValue =
"121110987654321";
dValue = atof(strValue);
CString to LPCSTR :-
--------------------
CString str1 = _T(
"My String");
int nLen = str1.GetLength();
LPCSTR lpszBuf = str1.GetBuffer(nLen);
// here do something with lpszBuf...........
str1.ReleaseBuffer();
CString to LPSTR :-
--------------------
CString str = _T(
"My String");
int nLen = str.GetLength();
LPTSTR lpszBuf = str.GetBuffer(nLen);
// here do something with lpszBuf...........
str.ReleaseBuffer();
CString to WCHAR*
-----------------
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
----------------
int nLen = MultiByteToWideChar(CP_ACP,
0, lptStr, -
1, NULL, NULL);
MultiByteToWideChar(CP_ACP,
0, lptStr, -
1, lpwStr, nLen);
string to BSTR
--------------
string ss =
"Girish";
BSTR _bstr_home = A2BSTR(ss.c_str());
CString to BSTR
---------------
CString str =
"whatever" ;
BSTR resultsString = str.AllocSysString();
_bstr_t to CString
-------------------
#include
#include
_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);
PART THREE :- CHARACTER ARRAYS
Char array to integer
---------------------
char MyArray[
20];
int nValue;
nValue = atoi(MyArray);
Char array to
float
-------------------
char MyArray[
20];
float fValue;
fValue = atof(MyArray);
Char Pointer to
double
----------------------
char *str =
" -343.23 ";
double dVal;
dVal = atof( str );
Char Pointer to integer
-----------------------
char *str =
" -343.23 ";
int iVal;
iVal = atoi( str );
Char Pointer to
long
--------------------
char *str =
"99999";
long lVal;
lVal = atol( str );
Char* to BSTR
-------------
char * p =
"whatever";
_bstr_t bstr = p;
Float to WORD and Vice Versa
-----------------------------
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
All luck and have a great time.