//-----------------------------------------------------
//参数:
//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;
}

解决方案 »

  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;
      

  2.   

    //-----------------------------------------------------
    //参数:
    //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类的成员函数
      

  3.   

    你不对着C++代码写PASCAL就可以了吗?没什么很大的区别啊。
      

  4.   

    : Linux2001(我想买手提电脑啊!) :data[j] ,delphi没有这么写的啊
      

  5.   

    delphi有这样的写法,表示字符串变量中第J个字符,注意,这里的J也是从0开始计算的,这点跟C一样。
      

  6.   

    可这里定义的是 data:pchar啊