www.xbdev.net
xbdev - software development
Thursday March 28, 2024
home | contact | Support | Tutorials - Tips - Secrets - for C and C++.. It does all the hard work for us..


Data Conversions - by example.



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) Or you can use this too

	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);
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
 
Advert (Support Website)

 
 Visitor:
Copyright (c) 2002-2024 xbdev.net - All rights reserved.
Designated articles, tutorials and software are the property of their respective owners.