怎样在delphi中将string转换成Cardinal类型(有VC写的代码) ( 积分: 100 )

  • 主题发起人 主题发起人 Bo_soft
  • 开始时间 开始时间
B

Bo_soft

Unregistered / Unconfirmed
GUEST, unregistred user!
void CCEHatDirFacTimSysDlg::OnKillfocusStnId()
{
//获取站点编号
int iTemp, i;
char cTemp;
CString sTemp;
GetDlgItem(IDC_STN_ID)->GetWindowText(sTemp);
iTemp = sTemp.GetLength();
if(iTemp < 8) sTemp = &quot;00000000&quot;
+ sTemp;
sTemp = sTemp.Right(8);
sTemp.MakeUpper();//将小写转换成大写
m_FacNumber = 0;
//DWORD类型
for(i = 0;
i < 8;
i++)
{
cTemp = sTemp.GetAt(i);
if((cTemp >= 0x30) &amp;&amp;
(cTemp <= 0x39))
{
m_FacNumber = m_FacNumber * 0x10 + (cTemp - 0x30);
}
else
if((cTemp >= 0x41) &amp;&amp;
(cTemp <= 0x46))
{
m_FacNumber = m_FacNumber * 0x10 + (cTemp - 0x37);
}
}
GetDlgItem(IDC_STN_ID)->SetWindowText(sTemp);
}
上面是在VC中实现的(将字符串转换成DWORD类型16进制表示),在Delphi中怎么样实现与其上面相同的功能,还请大家指教!
 
var
tmp: string;
aa: Integer;
begin
tmp:= '12345';
aa:= StrtoInt(tmp);
end;
 
cTemp 是char型,也不是什么转化吧,就是字符的ASCII码,Delphi里好象是Ord吧...
 
谢谢大家了,这个问题我已经解决了。
但是还有一个问题想请教大家伙一下,分不够我可以继续加!
就是在delphi中怎么样将Cardinal类型的数据转换成十六进制形式的字符串.还请大家多多指点,不胜感激!
function IDCardinalToStr(id : Cardinal) : String;
begin
result:=pchar(inttoHex(id,8));
//这样可以吗,如果id值大于了32768(也就是高于integer类型限度)还可行吗?
end;
 
IntToHex(id, 2)
 
后退
顶部