Hi all..
i have this code here..
Code:
#include <windows.h>
#include <iostream.h>
#include <tchar.h>
//convert the string to number
//udata is string
//udatalen is length of string
//base is numerical base eg. for decimal it is 10
// for hex it is 16
//largest base supported here is upto 36
int __fastcall StrToNum(const TCHAR *udata, int udatalen, int base)
{
long index;
const TCHAR numdigits[] = TEXT("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");
long digitValue = 0;
long RetVal = 0;
TCHAR digits[sizeof(numdigits)+1];
TCHAR *dataVal;
TCHAR data[512] ;
//copy the data to our variable
_tcscpy(data, udata);
//convert it to upper case
_tcsupr(data);
ZeroMemory(digits, sizeof(digits));
//copy the number of digits supported by base in digits
_tcsncpy(digits, numdigits, base);
for(index = 0; index < udatalen; index++)
{
//is the number there
dataVal = _tcschr(digits, data[index] );
if(dataVal != 0 )
{
//if it is subtract where to start point
digitValue = long(dataVal - digits);
//increment Retval with digitvalue
RetVal = RetVal * base + digitValue;
}
}
//return the result
return RetVal;
}
TCHAR* __fastcall NumToStr(TCHAR *RetData, long number, int base)
{
long index = 0;
const TCHAR numdigits[] = TEXT("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");
long digitValue = 0;
TCHAR digits[sizeof(numdigits) + 1];
TCHAR RetVal[512];
TCHAR CurVal = 0;
ZeroMemory(RetVal, sizeof(RetVal));
// only base supported are from 2 to 36
if(base < 2 || base > 36 ) return NULL;
ZeroMemory(digits, sizeof(digits));
_tcsncpy(digits, numdigits, base);
while(number)
{
digitValue = number % base;
number = number base;
RetVal[index++] = digits[digitValue];
}
//since string we have got is in reversed format
//eg 100 will be 001 so we have to reverse it
//and put the value in our variable
ZeroMemory(RetData, _tcslen(RetVal)+1);
int i = 0;
for(index = _tcslen(RetVal) - 1; index > -1; index--)
{
//start reversing
RetData[i++] = RetVal[index];
}
//return the result
return RetData;
}
//our main function
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
TCHAR Data[128];
ZeroMemory(Data, sizeof(Data));
//convert a number to string
NumToStr(Data, 1123, 10);
//now again convert string to number and see the result
cout << StrToNum(Data, _tcslen(Data), 10) << endl;
return 0;
}
but when i compile it this error msg appear to me :
syntax error : missing ';' before identifier 'base'
i've cheaked the place where it said that the ";" is missing but it's not!
so pls if any1 can help me..
and thank you very much