//-----------------------------------------------------
//参数:
//str:要转换的字符串
//data:储存转换过来的数据串
//len:数据长度
//函数功能:字符串转换为数据串
//-----------------------------------------------------
int CTimeAndKeyDlg::strtodata(unsigned char *str, unsigned char *data,int len)
{
unsigned char cTmp=0;
int i=0;
for(int j=0;j<len;j++)
{
if(chartoint(str[i++],&cTmp))
return 1;
data[j]=cTmp;
}
return 0;
}//-----------------------------------------------------
//参数:
//chr:要转换的字符
//cint:储存转换过来的数据
//函数功能:字符转换为数据
//-----------------------------------------------------
int CTimeAndKeyDlg::chartoint(unsigned char chr, unsigned char *cint)
{
unsigned char cTmp;
cTmp=chr-48;
if(cTmp>=0&&cTmp<=9)
{
*cint=cTmp;
return 0;
}
cTmp=chr-65;
if(cTmp>=0&&cTmp<=5)
{
*cint=(cTmp+10);
return 0;
}
cTmp=chr-97;
if(cTmp>=0&&cTmp<=5)
{
*cint=(cTmp+10);
return 0;
}
return 1;
}
//参数:
//str:要转换的字符串
//data:储存转换过来的数据串
//len:数据长度
//函数功能:字符串转换为数据串
//-----------------------------------------------------
int CTimeAndKeyDlg::strtodata(unsigned char *str, unsigned char *data,int len)
{
unsigned char cTmp=0;
int i=0;
for(int j=0;j<len;j++)
{
if(chartoint(str[i++],&cTmp))
return 1;
data[j]=cTmp;
}
return 0;
}//-----------------------------------------------------
//参数:
//chr:要转换的字符
//cint:储存转换过来的数据
//函数功能:字符转换为数据
//-----------------------------------------------------
int CTimeAndKeyDlg::chartoint(unsigned char chr, unsigned char *cint)
{
unsigned char cTmp;
cTmp=chr-48;
if(cTmp>=0&&cTmp<=9)
{
*cint=cTmp;
return 0;
}
cTmp=chr-65;
if(cTmp>=0&&cTmp<=5)
{
*cint=(cTmp+10);
return 0;
}
cTmp=chr-97;
if(cTmp>=0&&cTmp<=5)
{
*cint=(cTmp+10);
return 0;
}
return 1;
}
//参数:
//str:要转换的字符串
//data:储存转换过来的数据串
//len:数据长度
//函数功能:字符串转换为数据串
//-----------------------------------------------------
function CTimeAndKeyDlg.strtodata(str, data :PChar; Len :int):int;
var
cTmp :Char;
i, j :integer;
begin
for j :=0 to len do
begin
if (chartoint(str[i + 1], @cTmp)) then
result :=1;
data[j] :=cTmp;
end;
result :=0;
end;
//参数:
//chr:要转换的字符
//cint:储存转换过来的数据
//函数功能:字符转换为数据
//-----------------------------------------------------
function CTimeAndKeyDlg.chartoint(chr :Char;cint :PChar);
var
cTmp :Char;
begin
cTmp :=chr - 48;
if (cTmp >= 0) and (cTmp <= 9) then
begin
cint[0] :=cTmp;
result :=0;
end;
cTmp :=chr - 65;
if (cTmp > =0) and (cTmp <= 5) then
begin
cint[0] :=(cTmp + 10);
result :=0;
end;
cTmp :=chr - 97;
if (cTmp >= 0) and (cTmp <= 5) then
begin
cint[0] :=cTmp + 10;
result :=0;
end;
result :=1;
end;
这些代码我没有测试过,你可以根据编译信息来自己进行更改,反正大概就是这样了,需要说明的是这两个函数都是成员函数,是属于CTimeAndKeyDlg类的成员函数