代码是这样子的:
intTemp := StrToInt('$' + strTemp);其中strTemp是字符串形式的十六进制数,intTemp是个整数...怎么运行的时候出现错误: "$" is not a valid integer value;这是怎么回事,有人遇见过没?给帮忙解释下问题出在哪了?

解决方案 »

  1.   

    你确定你的strTemp里是十六进制的数不?
    好像你的strTemp里是空值
      

  2.   

    不能用strtoint吧
    先用HextoStr,再用strtoint看看
      

  3.   

    if strTemp <> '' then
      intTemp := StrToInt('$' + strTemp)
    else
      intTemp := 0;
      

  4.   

    intTemp := StrToInt('0x' + strTemp);
      

  5.   

    用这个最好,空也好,不能转的也好,都不会出错,判断返回值就知道是否有效了
    TryStrToInt
      

  6.   

    i:=StrToIntDef('$' + strTemp,0);
      

  7.   

    如果16进制转为10进制的数是个超过int数值范围的值
    也会报楼主的错误.!
      

  8.   

    intTemp := StrToInt('$' + strTemp);
    代码没错,出错的原因是没有给 strTemp 赋值。strTemp:='1A2B';
    intTemp := StrToInt('$' + strTemp);
    这样就不会错了。
      

  9.   

    StrToInt('$00ff02');可以转啊 是不是你的串为空了啊
      

  10.   

    谢谢大家,确实是因为strTemp截取了空字符串.
      

  11.   

    肯定后面的串有问题。LZ仔细检查,或者StrToIntDef?