strTemp:= copy(ValIn,m,2);
DecIntRet:= HexToInt(strTemp); // 到此步,strTemp = '13',HexToInt是16进制转10进制,返回integer
cRet:=char(DecIntRet); //到此步,DecIntRet=19,执行后cRet = #19
strRet_T:=cRet; //到此步,strRet_T = #$13,问题就出在这里
ValRet:=ValRet + strRet_T;
语句中,strRet_T = #$13 我理解是系统又将其自动转换为了16进制,和预想的结果不一致。转一段同样功能的VB代码: strBuf = Mid(strHex, i, 2)
byteBuf = CByte(Val("&H" & strBuf))
strReturn = strReturn & Chr(byteBuf)再转一段同样功能的C++代码:
temp = csChar.GetAt( i ); //temp为CString类型
temp += csChar.GetAt( i + 1 );
HexToDec( temp, nRet );
cRet = nRet; //cRet为TCHAR类型,nRet为int类型
csRet += cRet;希望能获得这样的功能。不胜感激。
DecIntRet:= HexToInt(strTemp); // 到此步,strTemp = '13',HexToInt是16进制转10进制,返回integer
cRet:=char(DecIntRet); //到此步,DecIntRet=19,执行后cRet = #19
strRet_T:=cRet; //到此步,strRet_T = #$13,问题就出在这里
ValRet:=ValRet + strRet_T;
语句中,strRet_T = #$13 我理解是系统又将其自动转换为了16进制,和预想的结果不一致。转一段同样功能的VB代码: strBuf = Mid(strHex, i, 2)
byteBuf = CByte(Val("&H" & strBuf))
strReturn = strReturn & Chr(byteBuf)再转一段同样功能的C++代码:
temp = csChar.GetAt( i ); //temp为CString类型
temp += csChar.GetAt( i + 1 );
HexToDec( temp, nRet );
cRet = nRet; //cRet为TCHAR类型,nRet为int类型
csRet += cRet;希望能获得这样的功能。不胜感激。
解决方案 »
- 关于自动更新
- 请大家帮帮忙注册邮箱~我需要很多投票马甲-感谢感谢
- 请大家推荐好点的下载组件
- DELPHI高手请进:我想用做一个执行EXE文件的ACTIVEX控件,该怎么做?
- ttgoodgood(ttgood) 你进来好么?我有话和你说
- 同志们,请关注,咱们是中国人啊!!!!!!!!!!!!!!!!
- 高分, 一个好的软件创意!
- 这次少一点,看还行不行!
- dephi中怎样实现在一个form中放一个逼真的时钟?(时间跟系统时间一样)
- 哪里有比csdn好的Delphi论坛?????
- adoQuery执行Open的时候提示"无效的授权说明",ADOConn连接SQL2005
- delphi 中如何用memo显示16进制数字
strTemp:= copy(ValIn,m,2);
DecIntRet:= HexToInt(strTemp); // 到此步,strTemp = '13',HexToInt是16进制转10进制,返回integer
cRet:=chr(DecIntRet); //到此步,DecIntRet=19,执行后cRet = #19
strRet_T:=cRet; //到此步,strRet_T = #$13,问题就出在这里
ValRet:=ValRet + strRet_T;
0.一个16进制字符的字符串;
1.将每个16进制(两位一组)的字符转为10进制的数字;
2.将这个数字转换为ASC的字符;
3.追加到一个字符串后面,最后处理完返回
DecIntRet:= HexToInt(strTemp); // 到此步,strTemp = '13',HexToInt是16进制转10进制,返回integer
ValRet:=ValRet + chr(DecIntRet);
如果计算出ascii对应是普通字符的话 累加后你才可以看到比较直观的效果
用监视看是这样的呀 你试试在最后用showmessage()来看看 是不是有换行符了?
在未字符處理的情況下也當成字符顯示出來吧??
當成字符做加密,位移這些都不是問題,只是顯示被當成了轉義字符。